usb: appledisplay: Remove unnecessary spinlock
authorAlexander Theissen <alex.theissen@me.com>
Tue, 4 Dec 2018 22:43:37 +0000 (23:43 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Dec 2018 09:42:25 +0000 (10:42 +0100)
The spinlock was inside the urb completion function which is only
called once per display and is then resubmitted from this function.
There was no other place where this lock was used.

Signed-off-by: Alexander Theissen <alex.theissen@me.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/appledisplay.c

index 730a266..8859cd9 100644 (file)
@@ -68,7 +68,6 @@ struct appledisplay {
 
        struct delayed_work work;
        int button_pressed;
-       spinlock_t lock;
        struct mutex sysfslock;         /* concurrent read and write */
 };
 
@@ -78,7 +77,6 @@ static void appledisplay_complete(struct urb *urb)
 {
        struct appledisplay *pdata = urb->context;
        struct device *dev = &pdata->udev->dev;
-       unsigned long flags;
        int status = urb->status;
        int retval;
 
@@ -104,8 +102,6 @@ static void appledisplay_complete(struct urb *urb)
                goto exit;
        }
 
-       spin_lock_irqsave(&pdata->lock, flags);
-
        switch(pdata->urbdata[1]) {
        case ACD_BTN_BRIGHT_UP:
        case ACD_BTN_BRIGHT_DOWN:
@@ -118,8 +114,6 @@ static void appledisplay_complete(struct urb *urb)
                break;
        }
 
-       spin_unlock_irqrestore(&pdata->lock, flags);
-
 exit:
        retval = usb_submit_urb(pdata->urb, GFP_ATOMIC);
        if (retval) {
@@ -228,7 +222,6 @@ static int appledisplay_probe(struct usb_interface *iface,
 
        pdata->udev = udev;
 
-       spin_lock_init(&pdata->lock);
        INIT_DELAYED_WORK(&pdata->work, appledisplay_work);
        mutex_init(&pdata->sysfslock);