From 5ff8e7cadf2caf6f2b8ec36cf7132fbb977e5547 Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Mon, 28 Nov 2022 15:22:39 +0100 Subject: [PATCH] lx_emul: use usb_unlink_urb() in timeout handler Replace usb_kill_urb() by usb_unlink_urb() in the timeout handler for control URBs, as usb_kill_urb() may block and is not allowed to be called in IRQ/bottom half contexts. Fixes #4681 --- repos/dde_linux/src/lib/lx_emul/usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/dde_linux/src/lib/lx_emul/usb.c b/repos/dde_linux/src/lib/lx_emul/usb.c index 85df4f7bc1..2fe04dc17d 100644 --- a/repos/dde_linux/src/lib/lx_emul/usb.c +++ b/repos/dde_linux/src/lib/lx_emul/usb.c @@ -521,7 +521,7 @@ static void urb_timeout(struct timer_list *t) { struct usb_urb_context * context = from_timer(context, t, timeo); context->timer_state = TIMER_TRIGGERED; - usb_kill_urb(context->urb); + usb_unlink_urb(context->urb); }