From f9efb3d998fc19eba306a816a033bcb19f0d6d03 Mon Sep 17 00:00:00 2001 From: Manjunathappa Prakash Date: Thu, 1 Feb 2018 12:21:29 -0800 Subject: [PATCH] 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 --- qdf/linux/src/qdf_nbuf.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qdf/linux/src/qdf_nbuf.c b/qdf/linux/src/qdf_nbuf.c index 49879f8097..444b4fe032 100644 --- a/qdf/linux/src/qdf_nbuf.c +++ b/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);