summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorGerd Hoffmann2012-09-26 10:28:58 +0200
committerGreg Kroah-Hartman2012-09-26 23:13:19 +0200
commit1994ff405e9c1a8916ca41e093e786262af42b42 (patch)
treee90693e5ee89e896a2d64468c6ed84d5509f92b5 /drivers/usb
parentUSB: Fix race condition when removing host controllers (diff)
downloadkernel-qcow2-linux-1994ff405e9c1a8916ca41e093e786262af42b42.tar.gz
kernel-qcow2-linux-1994ff405e9c1a8916ca41e093e786262af42b42.tar.xz
kernel-qcow2-linux-1994ff405e9c1a8916ca41e093e786262af42b42.zip
USB: uas: fix locking
Forgot to unlock in the uas_eh_task_mgmt error paths. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/storage/uas.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index 15789097edd6..4218701bb45e 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -649,12 +649,14 @@ static int uas_eh_task_mgmt(struct scsi_cmnd *cmnd,
shost_printk(KERN_INFO, shost,
"%s: %s: submit sense urb failed\n",
__func__, fname);
+ spin_unlock_irqrestore(&devinfo->lock, flags);
return FAILED;
}
if (uas_submit_task_urb(cmnd, GFP_ATOMIC, function, tag)) {
shost_printk(KERN_INFO, shost,
"%s: %s: submit task mgmt urb failed\n",
__func__, fname);
+ spin_unlock_irqrestore(&devinfo->lock, flags);
return FAILED;
}
spin_unlock_irqrestore(&devinfo->lock, flags);