On 2020/05/21 16:33, Greg KH wrote: > On Thu, May 21, 2020 at 08:31:29AM +0900, Tetsuo Handa wrote: >> Since e.g. wdm_flush() calls wait_event() on WDM_IN_USE bit, >> make sure to call wake_up_all() when clearing WDM_IN_USE bit. > > I'm sorry, but I don't understand what this changelog text is trying to > say. Can you reword this differently? wait_event("condition") wants corresponding wake_up() (or its variant) after making "condition" == true. For example, wdm_flush() calls wait_event(desc->wait, /* * needs both flags. We cannot do with one * because resetting it would cause a race * with write() yet we need to signal * a disconnect */ !test_bit(WDM_IN_USE, &desc->flags) || test_bit(WDM_DISCONNECTING, &desc->flags)); but wdm_write() is not calling wake_up(&desc->wait) after clear_bit(WDM_IN_USE, &desc->flags) when usb_submit_urb() failed. > And is this a bugfix? For what? Does it need to go to stable kernels? Potential bugfix. syzbot is reporting two bugs that hung at wdm_flush(), but I think that this patch won't fix these bugs. Therefore, I don't think this patch needs to go to stable kernels.