From 1eabdb6027c7e8206bf4c082df4750b4200696b6 Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Sat, 8 Jul 2017 15:08:14 +0800 Subject: [PATCH] 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 --- core/wma/src/wma_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 9c7f205e140a..b7a798d09f76 100644 --- a/core/wma/src/wma_main.c +++ b/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 */