[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250330104532.44935-1-abdun.nihaal@gmail.com>
Date: Sun, 30 Mar 2025 16:15:32 +0530
From: Abdun Nihaal <abdun.nihaal@...il.com>
To: kvalo@...nel.org
Cc: abdun.nihaal@...il.com,
linville@...driver.com,
linux-wireless@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v2] wifi: wl1251: fix memory leak in wl1251_tx_work
The skb dequeued from tx_queue is lost when wl1251_ps_elp_wakeup fails
with a -ETIMEDOUT error. Fix that by queueing the skb back to tx_queue.
Fixes: c5483b719363 ("wl12xx: check if elp wakeup failed")
Signed-off-by: Abdun Nihaal <abdun.nihaal@...il.com>
---
V1 -> V2 : Add subsystem name in commit header message
drivers/net/wireless/ti/wl1251/tx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ti/wl1251/tx.c b/drivers/net/wireless/ti/wl1251/tx.c
index 474b603c121c..adb4840b0489 100644
--- a/drivers/net/wireless/ti/wl1251/tx.c
+++ b/drivers/net/wireless/ti/wl1251/tx.c
@@ -342,8 +342,10 @@ void wl1251_tx_work(struct work_struct *work)
while ((skb = skb_dequeue(&wl->tx_queue))) {
if (!woken_up) {
ret = wl1251_ps_elp_wakeup(wl);
- if (ret < 0)
+ if (ret < 0) {
+ skb_queue_head(&wl->tx_queue, skb);
goto out;
+ }
woken_up = true;
}
--
2.47.2
Powered by blists - more mailing lists