Messages in this thread | | | Subject | Re: [PATCH v2] usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt() | From | Jia-Ju Bai <> | Date | Tue, 11 Sep 2018 16:25:21 +0800 |
| |
On 2018/9/11 15:49, Sebastian Andrzej Siewior wrote: > On 2018-09-01 16:12:10 [+0800], Jia-Ju Bai wrote: >> wdm_in_callback() is a completion handler function for the USB driver. >> So it should not sleep. But it calls service_outstanding_interrupt(), >> which calls usb_submit_urb() with GFP_KERNEL. > At which point does wdm_in_callback() invoke > service_outstanding_interrupt()? I don't see it. I see one invocation > from wdm_read() and another from service_interrupt_work(). > > Also, if that would be the case, then spin_unlock_irq() in an USB > completion handler (which might run in IRQ context with interrupts > disabled) would be wrong.
Yes, you are right. I checked an old kernel version Linux-4.16 and got this report. The current code looks much different from the code that I checked. Sorry for my false report, and thanks for your correction.
Best wishes, Jia-Ju Bai
| |