ACPI: video - convert semaphore to a mutex
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 36b64a7..d54c83d 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -29,6 +29,7 @@
#include <linux/init.h>
#include <linux/types.h>
#include <linux/list.h>
+#include <linux/mutex.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/input.h>
@@ -135,8 +136,8 @@
u8 attached_count;
struct acpi_video_bus_cap cap;
struct acpi_video_bus_flags flags;
- struct semaphore sem;
struct list_head video_device_list;
+ struct mutex device_list_lock; /* protects video_device_list */
struct proc_dir_entry *dir;
struct input_dev *input;
char phys[32]; /* for input device */
@@ -1436,9 +1437,9 @@
return -ENODEV;
}
- down(&video->sem);
+ mutex_lock(&video->device_list_lock);
list_add_tail(&data->entry, &video->video_device_list);
- up(&video->sem);
+ mutex_unlock(&video->device_list_lock);
acpi_video_device_add_fs(device);
@@ -1464,12 +1465,12 @@
{
struct acpi_video_device *dev;
- down(&video->sem);
+ mutex_lock(&video->device_list_lock);
list_for_each_entry(dev, &video->video_device_list, entry)
acpi_video_device_bind(video, dev);
- up(&video->sem);
+ mutex_unlock(&video->device_list_lock);
}
/*
@@ -1601,7 +1602,7 @@
unsigned long state;
int status = 0;
- down(&video->sem);
+ mutex_lock(&video->device_list_lock);
list_for_each(node, &video->video_device_list) {
dev = container_of(node, struct acpi_video_device, entry);
@@ -1619,7 +1620,7 @@
dev_prev = container_of(node->prev, struct acpi_video_device, entry);
out:
- up(&video->sem);
+ mutex_unlock(&video->device_list_lock);
switch (event) {
case ACPI_VIDEO_NOTIFY_CYCLE:
@@ -1738,7 +1739,7 @@
int status;
struct acpi_video_device *dev, *next;
- down(&video->sem);
+ mutex_lock(&video->device_list_lock);
list_for_each_entry_safe(dev, next, &video->video_device_list, entry) {
@@ -1755,7 +1756,7 @@
kfree(dev);
}
- up(&video->sem);
+ mutex_unlock(&video->device_list_lock);
return 0;
}
@@ -1924,7 +1925,7 @@
if (error)
goto err_free_video;
- init_MUTEX(&video->sem);
+ mutex_init(&video->device_list_lock);
INIT_LIST_HEAD(&video->video_device_list);
acpi_video_bus_get_devices(video, device);