| From 13b394b2fd56bd49812582895d358aec4904d701 Mon Sep 17 00:00:00 2001 |
| From: Paul Gortmaker <paul.gortmaker@windriver.com> |
| Date: Sat, 22 Jan 2011 17:19:58 -0500 |
| Subject: [PATCH] mutex/semaphore cleanups in staging dir |
| |
| This is one of several extractions from the merge up to 33-rc8. |
| |
| See it in a git tip repo with: |
| |
| git diff 5f854cfc024622e4aae14d7cf422f6ff86278688^ \ |
| 5f854cfc024622e4aae14d7cf422f6ff86278688 |
| |
| You can find the origin of this change in the tip merge commit: |
| |
| commit 5f854cfc024622e4aae14d7cf422f6ff86278688 |
| Merge: cc24da0 4ec62b2 |
| Author: Thomas Gleixner <tglx@linutronix.de> |
| Date: Sun Feb 21 20:17:22 2010 +0100 |
| |
| Forward to 2.6.33-rc8 |
| |
| Merge branch 'linus' into rt/head with a pile of conflicts. |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| |
| Normally there are not significant changes/additions in a merge commit that |
| are not from any other "normal" commit. But in this case there are, so |
| break them out into separate explicit commits. |
| |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c |
| index 96caae3..0e8a66a 100644 |
| --- a/drivers/staging/comedi/drivers/dt9812.c |
| +++ b/drivers/staging/comedi/drivers/dt9812.c |
| @@ -262,7 +262,7 @@ struct dt9812_usb_cmd { |
| |
| #define DT9812_NUM_SLOTS 16 |
| |
| -static DECLARE_MUTEX(dt9812_mutex); |
| +static DEFINE_SEMAPHORE(dt9812_mutex, 1); |
| |
| static const struct usb_device_id dt9812_table[] = { |
| {USB_DEVICE(0x0867, 0x9812)}, |
| @@ -1124,7 +1124,7 @@ static int __init usb_dt9812_init(void) |
| |
| /* Initialize all driver slots */ |
| for (i = 0; i < DT9812_NUM_SLOTS; i++) { |
| - init_MUTEX(&dt9812[i].mutex); |
| + sema_init(&dt9812[i].mutex, 1); |
| dt9812[i].serial = 0; |
| dt9812[i].usb = NULL; |
| dt9812[i].comedi = NULL; |
| diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c |
| index 8942ae4..c769f3d 100644 |
| --- a/drivers/staging/comedi/drivers/usbdux.c |
| +++ b/drivers/staging/comedi/drivers/usbdux.c |
| @@ -315,7 +315,7 @@ struct usbduxsub { |
| */ |
| static struct usbduxsub usbduxsub[NUMUSBDUX]; |
| |
| -static DECLARE_MUTEX(start_stop_sem); |
| +static DEFINE_SEMAPHORE(start_stop_sem, 1); |
| |
| /* |
| * Stops the data acquision |
| @@ -2369,7 +2369,7 @@ static int usbduxsub_probe(struct usb_interface *uinterf, |
| dev_dbg(dev, "comedi_: usbdux: " |
| "usbduxsub[%d] is ready to connect to comedi.\n", index); |
| |
| - init_MUTEX(&(usbduxsub[index].sem)); |
| + sema_init(&(usbduxsub[index].sem), 1); |
| /* save a pointer to the usb device */ |
| usbduxsub[index].usbdev = udev; |
| |
| diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c |
| index e89b818..01c41ea 100644 |
| --- a/drivers/staging/comedi/drivers/usbduxfast.c |
| +++ b/drivers/staging/comedi/drivers/usbduxfast.c |
| @@ -199,7 +199,7 @@ struct usbduxfastsub_s { |
| */ |
| static struct usbduxfastsub_s usbduxfastsub[NUMUSBDUXFAST]; |
| |
| -static DECLARE_MUTEX(start_stop_sem); |
| +static DEFINE_SEMAPHORE(start_stop_sem, 1); |
| |
| /* |
| * bulk transfers to usbduxfast |
| @@ -1499,7 +1499,7 @@ static int usbduxfastsub_probe(struct usb_interface *uinterf, |
| "connect to comedi.\n", index); |
| #endif |
| |
| - init_MUTEX(&(usbduxfastsub[index].sem)); |
| + sema_init(&(usbduxfastsub[index].sem), 1); |
| /* save a pointer to the usb device */ |
| usbduxfastsub[index].usbdev = udev; |
| |
| diff --git a/drivers/staging/dream/pmem.c b/drivers/staging/dream/pmem.c |
| index 503ba21..d85e8e3 100644 |
| --- a/drivers/staging/dream/pmem.c |
| +++ b/drivers/staging/dream/pmem.c |
| @@ -127,9 +127,9 @@ struct pmem_info { |
| * this flag */ |
| unsigned allocated; |
| /* for debugging, creates a list of pmem file structs, the |
| - * data_list_sem should be taken before pmem_data->sem if both are |
| + * data_list_mutex should be taken before pmem_data->sem if both are |
| * needed */ |
| - struct semaphore data_list_sem; |
| + struct mutex data_list_mutex; |
| struct list_head data_list; |
| /* pmem_sem protects the bitmap array |
| * a write lock should be held when modifying entries in bitmap |
| @@ -273,7 +273,7 @@ static int pmem_release(struct inode *inode, struct file *file) |
| int id = get_id(file), ret = 0; |
| |
| |
| - down(&pmem[id].data_list_sem); |
| + mutex_lock(&pmem[id].data_list_mutex); |
| /* if this file is a master, revoke all the memory in the connected |
| * files */ |
| if (PMEM_FLAGS_MASTERMAP & data->flags) { |
| @@ -290,7 +290,7 @@ static int pmem_release(struct inode *inode, struct file *file) |
| } |
| } |
| list_del(&data->list); |
| - up(&pmem[id].data_list_sem); |
| + mutex_unlock(&pmem[id].data_list_mutex); |
| |
| |
| down_write(&data->sem); |
| @@ -358,9 +358,9 @@ static int pmem_open(struct inode *inode, struct file *file) |
| file->private_data = data; |
| INIT_LIST_HEAD(&data->list); |
| |
| - down(&pmem[id].data_list_sem); |
| + mutex_lock(&pmem[id].data_list_mutex); |
| list_add(&data->list, &pmem[id].data_list); |
| - up(&pmem[id].data_list_sem); |
| + mutex_unlock(&pmem[id].data_list_mutex); |
| return ret; |
| } |
| |
| @@ -1176,7 +1176,7 @@ static ssize_t debug_read(struct file *file, char __user *buf, size_t count, |
| n = scnprintf(buffer, debug_bufmax, |
| "pid #: mapped regions (offset, len) (offset,len)...\n"); |
| |
| - down(&pmem[id].data_list_sem); |
| + mutex_lock(&pmem[id].data_list_mutex); |
| list_for_each(elt, &pmem[id].data_list) { |
| data = list_entry(elt, struct pmem_data, list); |
| down_read(&data->sem); |
| @@ -1193,7 +1193,7 @@ static ssize_t debug_read(struct file *file, char __user *buf, size_t count, |
| n += scnprintf(buffer + n, debug_bufmax - n, "\n"); |
| up_read(&data->sem); |
| } |
| - up(&pmem[id].data_list_sem); |
| + mutex_unlock(&pmem[id].data_list_mutex); |
| |
| n++; |
| buffer[n] = 0; |
| @@ -1230,7 +1230,7 @@ int pmem_setup(struct android_pmem_platform_data *pdata, |
| pmem[id].ioctl = ioctl; |
| pmem[id].release = release; |
| init_rwsem(&pmem[id].bitmap_sem); |
| - init_MUTEX(&pmem[id].data_list_sem); |
| + mutex_init(&pmem[id].data_list_mutex); |
| INIT_LIST_HEAD(&pmem[id].data_list); |
| pmem[id].dev.name = pdata->name; |
| pmem[id].dev.minor = id; |
| diff --git a/drivers/staging/frontier/alphatrack.c b/drivers/staging/frontier/alphatrack.c |
| index a50a215..7a08580 100644 |
| --- a/drivers/staging/frontier/alphatrack.c |
| +++ b/drivers/staging/frontier/alphatrack.c |
| @@ -678,7 +678,7 @@ static int usb_alphatrack_probe(struct usb_interface *intf, |
| dev_err(&intf->dev, "Out of memory\n"); |
| goto exit; |
| } |
| - init_MUTEX(&dev->sem); |
| + sema_init(&dev->sem, 1); |
| dev->intf = intf; |
| init_waitqueue_head(&dev->read_wait); |
| init_waitqueue_head(&dev->write_wait); |
| diff --git a/drivers/staging/frontier/tranzport.c b/drivers/staging/frontier/tranzport.c |
| index 2f03f43..ee3b0dd 100644 |
| --- a/drivers/staging/frontier/tranzport.c |
| +++ b/drivers/staging/frontier/tranzport.c |
| @@ -800,7 +800,7 @@ static int usb_tranzport_probe(struct usb_interface *intf, |
| dev_err(&intf->dev, "Out of memory\n"); |
| goto exit; |
| } |
| - init_MUTEX(&dev->sem); |
| + sema_init(&dev->sem, 1); |
| dev->intf = intf; |
| init_waitqueue_head(&dev->read_wait); |
| init_waitqueue_head(&dev->write_wait); |
| diff --git a/drivers/staging/otus/wwrap.c b/drivers/staging/otus/wwrap.c |
| index 53d2a45..adff5ea 100644 |
| --- a/drivers/staging/otus/wwrap.c |
| +++ b/drivers/staging/otus/wwrap.c |
| @@ -1058,7 +1058,7 @@ u8_t zfLnxCreateThread(zdev_t *dev) |
| |
| /* Create Mutex and keventd */ |
| INIT_WORK(&macp->kevent, kevent); |
| - init_MUTEX(&macp->ioctl_sem); |
| + sema_init(&macp->ioctl_sem, 1); |
| |
| return 0; |
| } |
| diff --git a/drivers/staging/rt2860/common/rtmp_init.c b/drivers/staging/rt2860/common/rtmp_init.c |
| index 21a95ff..9f4ac4d 100644 |
| --- a/drivers/staging/rt2860/common/rtmp_init.c |
| +++ b/drivers/staging/rt2860/common/rtmp_init.c |
| @@ -3520,7 +3520,7 @@ int RtmpRaDevCtrlInit(struct rt_rtmp_adapter *pAd, IN RTMP_INF_TYPE infType) |
| ("STA Driver version-%s\n", STA_DRIVER_VERSION)); |
| |
| #ifdef RTMP_MAC_USB |
| - init_MUTEX(&(pAd->UsbVendorReq_semaphore)); |
| + sema_init(&(pAd->UsbVendorReq_semaphore), 1); |
| os_alloc_mem(pAd, (u8 **) & pAd->UsbVendorReqBuf, |
| MAX_PARAM_BUFFER_SIZE - 1); |
| if (pAd->UsbVendorReqBuf == NULL) { |
| diff --git a/drivers/staging/vme/devices/vme_user.c b/drivers/staging/vme/devices/vme_user.c |
| index c60c80f..06062f7 100644 |
| --- a/drivers/staging/vme/devices/vme_user.c |
| +++ b/drivers/staging/vme/devices/vme_user.c |
| @@ -670,7 +670,7 @@ static int __init vme_user_probe(struct device *dev, int cur_bus, int cur_slot) |
| for (i = 0; i < VME_DEVS; i++) { |
| image[i].kern_buf = NULL; |
| image[i].pci_buf = 0; |
| - init_MUTEX(&(image[i].sem)); |
| + sema_init(&(image[i].sem), 1); |
| image[i].device = NULL; |
| image[i].resource = NULL; |
| image[i].users = 0; |
| -- |
| 1.7.1.1 |
| |