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);