Browse Source

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
Sravan Kumar Kairam 7 years ago
parent
commit
3d5c118ec6
1 changed files with 4 additions and 0 deletions
  1. 4 0
      core/dp/txrx/ol_tx_desc.c

+ 4 - 0
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);