On Do, 2018-06-14 at 18:36 +0200, Sebastian Andrzej Siewior wrote: > In the code path > __usb_hcd_giveback_urb() > -> wdm_in_callback() > -> service_outstanding_interrupt() > > The function service_outstanding_interrupt() will unconditionally enable > interrupts during unlock and invoke usb_submit_urb() with GFP_KERNEL. > If the HCD completes in BH (like ehci does) then the context remains > atomic due local_bh_disable() and enabling interrupts does not change > this. > > Defer the error case handling to a workqueue as suggested by Oliver > Neukum. In case of an error the worker performs the read out and wakes > the user. > > Fixes: c1da59dad0eb ("cdc-wdm: Clear read pipeline in case of error") > Cc: Robert Foss <robert.foss@xxxxxxxxxxxxx> > Cc: Oliver Neukum <oneukum@xxxxxxxx> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> <Acked-by: Oliver Neukum <oneukum@xxxxxxxx> It fixes the identified issue. Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html