소스 검색

qcacld-3.0: use adaptive method to cleanup qdf list

It just enumerates qdf list but do not remove element when cleanup
vdev response queue or hold request queue in wma layer, which cause
element duplicate free. Use adaptive method to cleanup them.

Change-Id: I85f71252c6452d31649295cb13aa0eeef2323b5a
CRs-Fixed: 2073394
Wu Gao 7 년 전
부모
커밋
1eabdb6027
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      core/wma/src/wma_main.c

+ 2 - 2
core/wma/src/wma_main.c

@@ -1732,7 +1732,7 @@ static void wma_cleanup_vdev_resp_queue(tp_wma_handle wma)
 		return;
 	}
 
-	while (qdf_list_peek_front(&wma->vdev_resp_queue, &node1) ==
+	while (qdf_list_remove_front(&wma->vdev_resp_queue, &node1) ==
 				   QDF_STATUS_SUCCESS) {
 		req_msg = qdf_container_of(node1, struct wma_target_req, node);
 		qdf_spin_unlock_bh(&wma->vdev_respq_lock);
@@ -1762,7 +1762,7 @@ static void wma_cleanup_hold_req(tp_wma_handle wma)
 	}
 
 	while (QDF_STATUS_SUCCESS ==
-			qdf_list_peek_front(&wma->wma_hold_req_queue, &node1)) {
+		qdf_list_remove_front(&wma->wma_hold_req_queue, &node1)) {
 		req_msg = qdf_container_of(node1, struct wma_target_req, node);
 		qdf_spin_unlock_bh(&wma->wma_hold_req_q_lock);
 		/* Cleanup timeout handler */