[PATCH] USB: convert a bunch of USB semaphores to mutexes
the patch below converts a bunch of semaphores-used-as-mutex in the USB
code to mutexes
Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
diff --git a/drivers/usb/media/vicam.c b/drivers/usb/media/vicam.c
index 5df1440..8cfc47b 100644
--- a/drivers/usb/media/vicam.c
+++ b/drivers/usb/media/vicam.c
@@ -42,6 +42,7 @@
#include <linux/vmalloc.h>
#include <linux/slab.h>
#include <linux/proc_fs.h>
+#include <linux/mutex.h>
#include "usbvideo.h"
// #define VICAM_DEBUG
@@ -407,7 +408,7 @@
struct usb_device *udev; // usb device
/* guard against simultaneous accesses to the camera */
- struct semaphore cam_lock;
+ struct mutex cam_lock;
int is_initialized;
u8 open_count;
@@ -461,12 +462,12 @@
u16 size)
{
int status = -ENODEV;
- down(&cam->cam_lock);
+ mutex_lock(&cam->cam_lock);
if (cam->udev) {
status = __send_control_msg(cam, request, value,
index, cp, size);
}
- up(&cam->cam_lock);
+ mutex_unlock(&cam->cam_lock);
return status;
}
static int
@@ -831,13 +832,13 @@
rvfree(cam->framebuf, VICAM_MAX_FRAME_SIZE * VICAM_FRAMES);
kfree(cam->cntrlbuf);
- down(&cam->cam_lock);
+ mutex_lock(&cam->cam_lock);
cam->open_count--;
open_count = cam->open_count;
udev = cam->udev;
- up(&cam->cam_lock);
+ mutex_unlock(&cam->cam_lock);
if (!open_count && !udev) {
kfree(cam);
@@ -960,7 +961,7 @@
request[8] = 0;
// bytes 9-15 do not seem to affect exposure or image quality
- down(&cam->cam_lock);
+ mutex_lock(&cam->cam_lock);
if (!cam->udev) {
goto done;
@@ -985,7 +986,7 @@
}
done:
- up(&cam->cam_lock);
+ mutex_unlock(&cam->cam_lock);
}
static ssize_t
@@ -1309,7 +1310,7 @@
cam->shutter_speed = 15;
- init_MUTEX(&cam->cam_lock);
+ mutex_init(&cam->cam_lock);
memcpy(&cam->vdev, &vicam_template,
sizeof (vicam_template));
@@ -1351,7 +1352,7 @@
/* stop the camera from being used */
- down(&cam->cam_lock);
+ mutex_lock(&cam->cam_lock);
/* mark the camera as gone */
@@ -1368,7 +1369,7 @@
open_count = cam->open_count;
- up(&cam->cam_lock);
+ mutex_unlock(&cam->cam_lock);
if (!open_count) {
kfree(cam);