From: Matthias Kaehlcke USB testing driver: convert semaphore dev->sem to the mutex API Signed-off-by: Matthias Kaehlcke Signed-off-by: Andrew Morton --- drivers/usb/misc/usbtest.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff -puN drivers/usb/misc/usbtest.c~usb-testing-driver-convert-dev-sem-to-mutex drivers/usb/misc/usbtest.c --- a/drivers/usb/misc/usbtest.c~usb-testing-driver-convert-dev-sem-to-mutex +++ a/drivers/usb/misc/usbtest.c @@ -6,6 +6,7 @@ #include #include #include +#include #include @@ -64,7 +65,7 @@ struct usbtest_dev { int in_iso_pipe; int out_iso_pipe; struct usb_endpoint_descriptor *iso_in, *iso_out; - struct semaphore sem; + struct mutex lock; #define TBUF_SIZE 256 u8 *buf; @@ -1558,11 +1559,11 @@ usbtest_ioctl (struct usb_interface *int || param->sglen < 0 || param->vary < 0) return -EINVAL; - if (down_interruptible (&dev->sem)) + if (mutex_lock_interruptible(&dev->lock)) return -ERESTARTSYS; if (intf->dev.power.power_state.event != PM_EVENT_ON) { - up (&dev->sem); + mutex_unlock(&dev->lock); return -EHOSTUNREACH; } @@ -1574,7 +1575,7 @@ usbtest_ioctl (struct usb_interface *int int res; if (intf->altsetting->desc.bInterfaceNumber) { - up (&dev->sem); + mutex_unlock(&dev->lock); return -ENODEV; } res = set_altsetting (dev, dev->info->alt); @@ -1582,7 +1583,7 @@ usbtest_ioctl (struct usb_interface *int dev_err (&intf->dev, "set altsetting to %d failed, %d\n", dev->info->alt, res); - up (&dev->sem); + mutex_unlock(&dev->lock); return res; } } @@ -1855,7 +1856,7 @@ usbtest_ioctl (struct usb_interface *int param->duration.tv_usec += 1000 * 1000; param->duration.tv_sec -= 1; } - up (&dev->sem); + mutex_unlock(&dev->lock); return retval; } @@ -1905,7 +1906,7 @@ usbtest_probe (struct usb_interface *int return -ENOMEM; info = (struct usbtest_info *) id->driver_info; dev->info = info; - init_MUTEX (&dev->sem); + mutex_init(&dev->lock); dev->intf = intf; @@ -1990,7 +1991,7 @@ static void usbtest_disconnect (struct u { struct usbtest_dev *dev = usb_get_intfdata (intf); - down (&dev->sem); + mutex_lock(&dev->lock); usb_set_intfdata (intf, NULL); dev_dbg (&intf->dev, "disconnect\n"); _