From 96d7fbafaf3955ba4deebeb85561a7183d94e6a6 Mon Sep 17 00:00:00 2001 From: Chaithanya Garrepalli Date: Fri, 11 Sep 2020 14:03:36 +0530 Subject: [PATCH] qcacmn: fix double nbuf allocation false positive In qdf_nbuf_queue_free API __qdf_nbuf_free API is called to free the nbuf which is not clearing the debug node instead call qdf_nbuf_free API to delete the nbuf debug node and free nbuf Change-Id: I34f06a440ce7758d4ea02fbd1d696366460aa871 --- qdf/inc/qdf_nbuf.h | 5 ++++- qdf/linux/src/i_qdf_nbuf.h | 17 ----------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index 004263194b..312c0ce7c2 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -2203,7 +2203,10 @@ qdf_nbuf_queue_append(qdf_nbuf_queue_t *dest, qdf_nbuf_queue_t *src) static inline void qdf_nbuf_queue_free(qdf_nbuf_queue_t *head) { - __qdf_nbuf_queue_free(head); + qdf_nbuf_t buf = NULL; + + while ((buf = qdf_nbuf_queue_remove(head)) != NULL) + qdf_nbuf_free(buf); } static inline qdf_nbuf_t diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index 294cfafb4e..6c39baa142 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -1736,23 +1736,6 @@ struct sk_buff *__qdf_nbuf_queue_remove(__qdf_nbuf_queue_t *qhead) return tmp; } -/** - * __qdf_nbuf_queue_free() - free a queue - * @qhead: head of queue - * - * Return: QDF status - */ -static inline QDF_STATUS -__qdf_nbuf_queue_free(__qdf_nbuf_queue_t *qhead) -{ - __qdf_nbuf_t buf = NULL; - - while ((buf = __qdf_nbuf_queue_remove(qhead)) != NULL) - __qdf_nbuf_free(buf); - return QDF_STATUS_SUCCESS; -} - - /** * __qdf_nbuf_queue_first() - returns the first skb in the queue * @qhead: head of queue