[WATCHDOG] use mutex instead of semaphore in Berkshire USB-PC Watchdog driver
authorMatthias Kaehlcke <matthias.kaehlcke@gmail.com>
Fri, 4 May 2007 03:15:14 +0000 (20:15 -0700)
committerWim Van Sebroeck <wim@iguana.be>
Fri, 4 May 2007 06:07:59 +0000 (06:07 +0000)
The Berkshire USB-PC Watchdog driver uses a semaphore as mutex.  Use the mutex
API instead of the (binary) semaphore.

Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/char/watchdog/pcwd_usb.c

index 31037f9..1e7a671 100644 (file)
@@ -146,7 +146,7 @@ struct usb_pcwd_private {
        atomic_t                cmd_received;           /* true if we received a report after a command */
 
        int                     exists;                 /* Wether or not the device exists */
-       struct semaphore        sem;                    /* locks this structure */
+       struct mutex            mtx;                    /* locks this structure */
 };
 static struct usb_pcwd_private *usb_pcwd_device;
 
@@ -635,7 +635,7 @@ static int usb_pcwd_probe(struct usb_interface *interface, const struct usb_devi
 
        usb_pcwd_device = usb_pcwd;
 
-       init_MUTEX (&usb_pcwd->sem);
+       mutex_init(&usb_pcwd->mtx);
        usb_pcwd->udev = udev;
        usb_pcwd->interface = interface;
        usb_pcwd->interface_number = iface_desc->desc.bInterfaceNumber;
@@ -763,7 +763,7 @@ static void usb_pcwd_disconnect(struct usb_interface *interface)
        usb_pcwd = usb_get_intfdata (interface);
        usb_set_intfdata (interface, NULL);
 
-       down (&usb_pcwd->sem);
+       mutex_lock(&usb_pcwd->mtx);
 
        /* Stop the timer before we leave */
        if (!nowayout)
@@ -777,7 +777,7 @@ static void usb_pcwd_disconnect(struct usb_interface *interface)
        misc_deregister(&usb_pcwd_temperature_miscdev);
        unregister_reboot_notifier(&usb_pcwd_notifier);
 
-       up (&usb_pcwd->sem);
+       mutex_unlock(&usb_pcwd->mtx);
 
        /* Delete the USB PCWD device */
        usb_pcwd_delete(usb_pcwd);