[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251221155806.23925-1-swilczek.lx@gmail.com>
Date: Sun, 21 Dec 2025 16:58:06 +0100
From: Szymon Wilczek <swilczek.lx@...il.com>
To: linux-wireless@...r.kernel.org,
libertas-dev@...ts.infradead.org
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com,
Szymon Wilczek <swilczek.lx@...il.com>,
syzbot+67969ab6a2551c27f71b@...kaller.appspotmail.com
Subject: [PATCH] wifi: libertas: fix WARNING in usb_tx_block
The function usb_tx_block() submits cardp->tx_urb without ensuring that
any previous transmission on this URB has completed. If a second call
occurs while the URB is still active (e.g. during rapid firmware loading),
usb_submit_urb() detects the active state and triggers a warning:
'URB submitted while active'.
Fix this by enforcing serialization: call usb_kill_urb() before
submitting the new request. This ensures the URB is idle and safe to reuse.
Reported-by: syzbot+67969ab6a2551c27f71b@...kaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=67969ab6a2551c27f71b
Signed-off-by: Szymon Wilczek <swilczek.lx@...il.com>
---
drivers/net/wireless/marvell/libertas/if_usb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/wireless/marvell/libertas/if_usb.c b/drivers/net/wireless/marvell/libertas/if_usb.c
index b3c4040257a6..924ab93b7b67 100644
--- a/drivers/net/wireless/marvell/libertas/if_usb.c
+++ b/drivers/net/wireless/marvell/libertas/if_usb.c
@@ -426,6 +426,8 @@ static int usb_tx_block(struct if_usb_card *cardp, uint8_t *payload, uint16_t nb
goto tx_ret;
}
+ usb_kill_urb(cardp->tx_urb);
+
usb_fill_bulk_urb(cardp->tx_urb, cardp->udev,
usb_sndbulkpipe(cardp->udev,
cardp->ep_out),
--
2.52.0
Powered by blists - more mailing lists