Sfoglia il codice sorgente

qcacmn: Check for TSO packet in release_skb

For TSO packets we get Tx completion for each segment,
whereas nbuf tracking code has only one entry. So remove
nbuf tracking record entry when nbuf->users is 1.

Change-Id: I7f66eb91d802c909ee0c9a0243be6415c82c211e
CRs-Fixed: 2179883
Manjunathappa Prakash 7 anni fa
parent
commit
f9efb3d998
1 ha cambiato i file con 11 aggiunte e 0 eliminazioni
  1. 11 0
      qdf/linux/src/qdf_nbuf.c

+ 11 - 0
qdf/linux/src/qdf_nbuf.c

@@ -2157,9 +2157,20 @@ void qdf_net_buf_debug_release_skb(qdf_nbuf_t net_buf)
 		qdf_nbuf_t next;
 
 		next = qdf_nbuf_queue_next(ext_list);
+
+		if (qdf_nbuf_is_tso(ext_list) &&
+			qdf_nbuf_get_users(ext_list) > 1) {
+			ext_list = next;
+			continue;
+		}
+
 		qdf_net_buf_debug_delete_node(ext_list);
 		ext_list = next;
 	}
+
+	if (qdf_nbuf_is_tso(net_buf) && qdf_nbuf_get_users(net_buf) > 1)
+		return;
+
 	qdf_net_buf_debug_delete_node(net_buf);
 }
 EXPORT_SYMBOL(qdf_net_buf_debug_release_skb);