Message ID | 1447525076-12068-1-git-send-email-khoroshilov@ispras.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, Nov 14, 2015 at 09:17:56PM +0300, Alexey Khoroshilov wrote: > Commit af8a819a2513 ("[media] lirc_imon: simplify error handling code") > lost mutex_unlock(&context->ctx_lock), so imon_probe() exits with > the context->ctx_lock mutex acquired. > > The patch adds mutex_unlock(&context->ctx_lock) back. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> > Fixes: af8a819a2513 ("[media] lirc_imon: simplify error handling code") Hm... This patch is from June and it totally breaks the driver. It's dissapointing that no one reported this bug. > --- > drivers/staging/media/lirc/lirc_imon.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/staging/media/lirc/lirc_imon.c b/drivers/staging/media/lirc/lirc_imon.c > index 534b8103ae80..ff1926ca1f96 100644 > --- a/drivers/staging/media/lirc/lirc_imon.c > +++ b/drivers/staging/media/lirc/lirc_imon.c > @@ -885,12 +885,14 @@ static int imon_probe(struct usb_interface *interface, > vendor, product, ifnum, usbdev->bus->busnum, usbdev->devnum); > > /* Everything went fine. Just unlock and return retval (with is 0) */ > + mutex_unlock(&context->ctx_lock); > goto driver_unlock; > > unregister_lirc: > lirc_unregister_driver(driver->minor); > > free_tx_urb: > + mutex_unlock(&context->ctx_lock); > usb_free_urb(tx_urb); Now the label name doesn't make sense. Also this unlock isn't needed because we are just going to free context anyway. regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/staging/media/lirc/lirc_imon.c b/drivers/staging/media/lirc/lirc_imon.c index 534b8103ae80..ff1926ca1f96 100644 --- a/drivers/staging/media/lirc/lirc_imon.c +++ b/drivers/staging/media/lirc/lirc_imon.c @@ -885,12 +885,14 @@ static int imon_probe(struct usb_interface *interface, vendor, product, ifnum, usbdev->bus->busnum, usbdev->devnum); /* Everything went fine. Just unlock and return retval (with is 0) */ + mutex_unlock(&context->ctx_lock); goto driver_unlock; unregister_lirc: lirc_unregister_driver(driver->minor); free_tx_urb: + mutex_unlock(&context->ctx_lock); usb_free_urb(tx_urb); free_rx_urb:
Commit af8a819a2513 ("[media] lirc_imon: simplify error handling code") lost mutex_unlock(&context->ctx_lock), so imon_probe() exits with the context->ctx_lock mutex acquired. The patch adds mutex_unlock(&context->ctx_lock) back. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Fixes: af8a819a2513 ("[media] lirc_imon: simplify error handling code") --- drivers/staging/media/lirc/lirc_imon.c | 2 ++ 1 file changed, 2 insertions(+)