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? > > Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> And is this a bugfix? For what? Does it need to go to stable kernels? > --- > drivers/usb/class/cdc-wdm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c > index e3db6fbeadef..bf2a6deb7b08 100644 > --- a/drivers/usb/class/cdc-wdm.c > +++ b/drivers/usb/class/cdc-wdm.c > @@ -151,7 +151,7 @@ static void wdm_out_callback(struct urb *urb) > kfree(desc->outbuf); > desc->outbuf = NULL; > clear_bit(WDM_IN_USE, &desc->flags); > - wake_up(&desc->wait); > + wake_up_all(&desc->wait); > } > > static void wdm_in_callback(struct urb *urb) > @@ -426,6 +426,7 @@ static ssize_t wdm_write > clear_bit(WDM_IN_USE, &desc->flags); > dev_err(&desc->intf->dev, "Tx URB error: %d\n", rv); > rv = usb_translate_errors(rv); > + wake_up_all(&desc->wait); Is this a fix for two different issues? confused, greg k-h