Message ID | 20250330104532.44935-1-abdun.nihaal@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v2] wifi: wl1251: fix memory leak in wl1251_tx_work | expand |
On 3/30/2025 1:45 PM, Abdun Nihaal wrote: > 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@gmail.com Reviewed-by: Michael Nemanov <michael.nemanov@ti.com>
> The skb dequeued from tx_queue is lost when wl1251_ps_elp_wakeup fails failed? > with a -ETIMEDOUT error. Fix that by queueing the skb back to tx_queue. Can an other summary phrase be more appropriate for such a software situation? Regards, Markus
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; }
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@gmail.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(-)