diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2009-03-11 16:47:40 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-17 17:01:29 -0400 |
commit | 49fa09215c03116449184057f062c6aea2f1d0b4 (patch) | |
tree | 7323170750f671c2f2a8f18444a9861cf1455115 /drivers/usb | |
parent | a08b43aee46ed4272ad7bee2c785edcf313339b3 (diff) |
USB: wusbcore/wa-xfer, fix lock imbalance
Fix locking on one wa_urb_enqueue_b's fail path. There was omitted unlock.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/wusbcore/wa-xfer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c index 238a96aee3a1..613a5fc490d3 100644 --- a/drivers/usb/wusbcore/wa-xfer.c +++ b/drivers/usb/wusbcore/wa-xfer.c | |||
@@ -921,8 +921,10 @@ static void wa_urb_enqueue_b(struct wa_xfer *xfer) | |||
921 | result = -ENODEV; | 921 | result = -ENODEV; |
922 | /* FIXME: segmentation broken -- kills DWA */ | 922 | /* FIXME: segmentation broken -- kills DWA */ |
923 | mutex_lock(&wusbhc->mutex); /* get a WUSB dev */ | 923 | mutex_lock(&wusbhc->mutex); /* get a WUSB dev */ |
924 | if (urb->dev == NULL) | 924 | if (urb->dev == NULL) { |
925 | mutex_unlock(&wusbhc->mutex); | ||
925 | goto error_dev_gone; | 926 | goto error_dev_gone; |
927 | } | ||
926 | wusb_dev = __wusb_dev_get_by_usb_dev(wusbhc, urb->dev); | 928 | wusb_dev = __wusb_dev_get_by_usb_dev(wusbhc, urb->dev); |
927 | if (wusb_dev == NULL) { | 929 | if (wusb_dev == NULL) { |
928 | mutex_unlock(&wusbhc->mutex); | 930 | mutex_unlock(&wusbhc->mutex); |