On Mon, 2 Nov 2015 10:27:00 +0100 Jiri Slaby <jslaby@xxxxxxx> wrote: > Signed-off-by: Jiri Slaby <jslaby@xxxxxxx> > --- a/drivers/usb/class/usblp.c > +++ b/drivers/usb/class/usblp.c > @@ -884,11 +884,11 @@ static int usblp_wwait(struct usblp *usblp, int nonblock) > > add_wait_queue(&usblp->wwait, &waita); > for (;;) { > - set_current_state(TASK_INTERRUPTIBLE); > if (mutex_lock_interruptible(&usblp->mut)) { > rc = -EINTR; > break; > } > + set_current_state(TASK_INTERRUPTIBLE); > rc = usblp_wtest(usblp, nonblock); > mutex_unlock(&usblp->mut); > if (rc <= 0) I'm fully onboard with this. In the original "big cleanup" 317c67b8f, I got this right. But then I either missed that mutex_lock_interruptible() can set the state, or it didn't do it back then (it was in 2007), and the 7f477358e introduced the existing code. Acked-By: Pete Zaitcev <zaitcev@xxxxxxxxx> -- Pete -- 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