Loading drivers/usb/storage/uas.c +14 −9 Original line number Diff line number Diff line Loading @@ -309,18 +309,18 @@ static void uas_stat_cmplt(struct urb *urb) int status = urb->status; bool success; spin_lock_irqsave(&devinfo->lock, flags); if (devinfo->resetting) goto out; if (status) { if (status != -ENOENT && status != -ECONNRESET && status != -ESHUTDOWN) dev_err(&urb->dev->dev, "stat urb: status %d\n", status); goto out; goto bail; } idx = be16_to_cpup(&iu->tag) - 1; spin_lock_irqsave(&devinfo->lock, flags); if (devinfo->resetting) goto out; if (idx >= MAX_CMNDS || !devinfo->cmnd[idx]) { dev_err(&urb->dev->dev, "stat urb: no pending cmd for uas-tag %d\n", idx + 1); Loading Loading @@ -375,9 +375,8 @@ static void uas_stat_cmplt(struct urb *urb) default: uas_log_cmd_state(cmnd, "bogus IU", iu->iu_id); } out: usb_free_urb(urb); spin_unlock_irqrestore(&devinfo->lock, flags); usb_free_urb(urb); /* Unlinking of data urbs must be done without holding the lock */ if (data_in_urb) { Loading @@ -388,6 +387,12 @@ static void uas_stat_cmplt(struct urb *urb) usb_unlink_urb(data_out_urb); usb_put_urb(data_out_urb); } return; out: spin_unlock_irqrestore(&devinfo->lock, flags); bail: usb_free_urb(urb); } static void uas_data_cmplt(struct urb *urb) Loading Loading @@ -429,8 +434,8 @@ static void uas_data_cmplt(struct urb *urb) } uas_try_complete(cmnd, __func__); out: usb_free_urb(urb); spin_unlock_irqrestore(&devinfo->lock, flags); usb_free_urb(urb); } static void uas_cmd_cmplt(struct urb *urb) Loading Loading
drivers/usb/storage/uas.c +14 −9 Original line number Diff line number Diff line Loading @@ -309,18 +309,18 @@ static void uas_stat_cmplt(struct urb *urb) int status = urb->status; bool success; spin_lock_irqsave(&devinfo->lock, flags); if (devinfo->resetting) goto out; if (status) { if (status != -ENOENT && status != -ECONNRESET && status != -ESHUTDOWN) dev_err(&urb->dev->dev, "stat urb: status %d\n", status); goto out; goto bail; } idx = be16_to_cpup(&iu->tag) - 1; spin_lock_irqsave(&devinfo->lock, flags); if (devinfo->resetting) goto out; if (idx >= MAX_CMNDS || !devinfo->cmnd[idx]) { dev_err(&urb->dev->dev, "stat urb: no pending cmd for uas-tag %d\n", idx + 1); Loading Loading @@ -375,9 +375,8 @@ static void uas_stat_cmplt(struct urb *urb) default: uas_log_cmd_state(cmnd, "bogus IU", iu->iu_id); } out: usb_free_urb(urb); spin_unlock_irqrestore(&devinfo->lock, flags); usb_free_urb(urb); /* Unlinking of data urbs must be done without holding the lock */ if (data_in_urb) { Loading @@ -388,6 +387,12 @@ static void uas_stat_cmplt(struct urb *urb) usb_unlink_urb(data_out_urb); usb_put_urb(data_out_urb); } return; out: spin_unlock_irqrestore(&devinfo->lock, flags); bail: usb_free_urb(urb); } static void uas_data_cmplt(struct urb *urb) Loading Loading @@ -429,8 +434,8 @@ static void uas_data_cmplt(struct urb *urb) } uas_try_complete(cmnd, __func__); out: usb_free_urb(urb); spin_unlock_irqrestore(&devinfo->lock, flags); usb_free_urb(urb); } static void uas_cmd_cmplt(struct urb *urb) Loading