This is necessary because the thread would be stuck if the firmware is not fully loaded before the if_usb_disconnect function is called. In that case if_usb_prog_firmware would be stuck in wait_event_interruptible and lbs_remove_card would also be stuck waiting for firmware loading to be done which was the original bug reported. Fixes: 954ee164f4f4 ("[PATCH] libertas: reorganize and simplify init sequence") Reported-and-tested-by: syzbot+c99d17aa44dbdba16ad2@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=c99d17aa44dbdba16ad2 Signed-off-by: Jakov Novak --- drivers/net/wireless/marvell/libertas/if_usb.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/wireless/marvell/libertas/if_usb.c b/drivers/net/wireless/marvell/libertas/if_usb.c index 245c902a7e42..8a6bf1365cfa 100644 --- a/drivers/net/wireless/marvell/libertas/if_usb.c +++ b/drivers/net/wireless/marvell/libertas/if_usb.c @@ -310,7 +310,6 @@ static void if_usb_disconnect(struct usb_interface *intf) struct lbs_private *priv = cardp->priv; cardp->surprise_removed = 1; - wake_up(&cardp->fw_wq); if (priv) { lbs_stop_card(priv); -- 2.53.0