Browse Source

qcacmn: hotfix for qdf_nbuf_map checking logic of TSO TX

The map\unmap checking logic need to be revised. Before that, it
is needed this hotfix to unblock other test.

CRs-Fixed: 2175684
Change-Id: Ife8147526307924079be9081eaf17323f67b87c0
chenguo 7 years ago
parent
commit
94b76158c1
1 changed files with 6 additions and 5 deletions
  1. 6 5
      dp/wifi3.0/dp_tx.c

+ 6 - 5
dp/wifi3.0/dp_tx.c

@@ -2200,12 +2200,13 @@ static inline void dp_tx_comp_free_buf(struct dp_soc *soc,
 					desc->msdu_ext_desc->vaddr)) {
 			/* If remaining number of segment is 0
 			 * actual TSO may unmap and free */
-			if (!DP_DESC_NUM_FRAG(desc)) {
-				qdf_nbuf_unmap(soc->osdev, nbuf,
+			if (qdf_nbuf_get_users(nbuf) == 1)
+				__qdf_nbuf_unmap_single(soc->osdev,
+						nbuf,
 						QDF_DMA_TO_DEVICE);
-				qdf_nbuf_free(nbuf);
-				return;
-			}
+
+			qdf_nbuf_free(nbuf);
+			return;
 		}
 	}