Commit a0f0dc96 authored by Abdun Nihaal's avatar Abdun Nihaal Committed by Johannes Berg
Browse files

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: c5483b71 ("wl12xx: check if elp wakeup failed")
Signed-off-by: default avatarAbdun Nihaal <abdun.nihaal@gmail.com>
Reviewed-by: default avatarMichael Nemanov <michael.nemanov@ti.com>
Link: https://patch.msgid.link/20250330104532.44935-1-abdun.nihaal@gmail.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 9e935c0f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
		}