From c653bbac922cc3651d48b10ab888fd74cc1335e2 Mon Sep 17 00:00:00 2001 From: DARAM SUDHA Date: Thu, 14 May 2015 18:44:59 +0530 Subject: [PATCH] qcacld-3.0: debug check for l_rx_defrag_waitlist_remove qcacld-2.0 to qcacld-3.0 propagation while wlan disconnection is happening, in the process of peer-cleanup check for tqu->prev to be non-null before calling TAILQ_REMOVE. Change-Id: I5841dfe80b954bdfac5147f5e3e3661cc85ba4b1 CRs-Fixed: 836447 --- core/dp/txrx/ol_rx_defrag.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/dp/txrx/ol_rx_defrag.c b/core/dp/txrx/ol_rx_defrag.c index 4fb2cbc2e48e..7f1db54e6da9 100644 --- a/core/dp/txrx/ol_rx_defrag.c +++ b/core/dp/txrx/ol_rx_defrag.c @@ -393,14 +393,18 @@ void ol_rx_defrag_waitlist_remove(struct ol_txrx_peer_t *peer, unsigned tid) struct ol_txrx_pdev_t *pdev = peer->vdev->pdev; struct ol_rx_reorder_t *rx_reorder = &peer->tids_rx_reorder[tid]; - if (rx_reorder->defrag_waitlist_elem.tqe_next != NULL || - rx_reorder->defrag_waitlist_elem.tqe_prev != NULL) { + if (rx_reorder->defrag_waitlist_elem.tqe_next != NULL) { TAILQ_REMOVE(&pdev->rx.defrag.waitlist, rx_reorder, defrag_waitlist_elem); rx_reorder->defrag_waitlist_elem.tqe_next = NULL; rx_reorder->defrag_waitlist_elem.tqe_prev = NULL; + } else { + TXRX_PRINT(TXRX_PRINT_LEVEL_FATAL_ERR, + "waitlist->tqe_prv = NULL\n"); + CDF_ASSERT(0); + rx_reorder->defrag_waitlist_elem.tqe_next = NULL; } }