From 3d5c118ec6b865587df742ecc95c1b3903aedf9e Mon Sep 17 00:00:00 2001 From: Sravan Kumar Kairam Date: Tue, 27 Jun 2017 16:00:24 +0530 Subject: [PATCH] qcacld-3.0: At TSO segment free set owner TX desc to NULL Currently at TSO segment free it's debug information is not cleared. TSO segment TX descriptor owner is part of the debug information. As a result even after segment free still its point to stale TX descriptor as it's owner. In this change at TSO segment free set TX desc owner to NULL. Change-Id: I09f927d78c7b3aa4691aa69acbd4cef5002cf11d CRs-Fixed: 2063433 --- core/dp/txrx/ol_tx_desc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/dp/txrx/ol_tx_desc.c b/core/dp/txrx/ol_tx_desc.c index ed587f093d66..f5ffd5f5a22a 100644 --- a/core/dp/txrx/ol_tx_desc.c +++ b/core/dp/txrx/ol_tx_desc.c @@ -767,6 +767,9 @@ ol_tso_seg_dbg_sanitize(struct qdf_tso_seg_elem_t *tsoseg) if (tsoseg != NULL) { txdesc = tsoseg->dbg.txdesc; + /* Don't validate if TX desc is NULL*/ + if (!txdesc) + return 0; if (txdesc->tso_desc != tsoseg) qdf_tso_seg_dbg_bug("Owner sanity failed"); else @@ -849,6 +852,7 @@ void ol_tso_free_segment(struct ol_txrx_pdev_t *pdev, } /* sanitize before free */ ol_tso_seg_dbg_sanitize(tso_seg); + qdf_tso_seg_dbg_setowner(tso_seg, NULL); /*this tso seg is now a part of freelist*/ /* retain segment history, if debug is enabled */ qdf_tso_seg_dbg_zero(tso_seg);