UAS: also check for ESHUTDOWN in error reporting
-ESHUTDOWN means that the HC has been unplugged. Reporting an error in that case makes no sense. Signed-off-by: Oliver Neukum <oneukum@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
db1319e166
Коммит
cca26be3e6
|
@ -257,17 +257,16 @@ static void uas_stat_cmplt(struct urb *urb)
|
|||
struct uas_cmd_info *cmdinfo;
|
||||
unsigned long flags;
|
||||
unsigned int idx;
|
||||
int status = urb->status;
|
||||
|
||||
spin_lock_irqsave(&devinfo->lock, flags);
|
||||
|
||||
if (devinfo->resetting)
|
||||
goto out;
|
||||
|
||||
if (urb->status) {
|
||||
if (urb->status != -ENOENT && urb->status != -ECONNRESET) {
|
||||
dev_err(&urb->dev->dev, "stat urb: status %d\n",
|
||||
urb->status);
|
||||
}
|
||||
if (status) {
|
||||
if (status != -ENOENT && status != -ECONNRESET && status != -ESHUTDOWN)
|
||||
dev_err(&urb->dev->dev, "stat urb: status %d\n", status);
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -348,6 +347,7 @@ static void uas_data_cmplt(struct urb *urb)
|
|||
struct uas_dev_info *devinfo = (void *)cmnd->device->hostdata;
|
||||
struct scsi_data_buffer *sdb = NULL;
|
||||
unsigned long flags;
|
||||
int status = urb->status;
|
||||
|
||||
spin_lock_irqsave(&devinfo->lock, flags);
|
||||
|
||||
|
@ -374,9 +374,9 @@ static void uas_data_cmplt(struct urb *urb)
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (urb->status) {
|
||||
if (urb->status != -ENOENT && urb->status != -ECONNRESET)
|
||||
uas_log_cmd_state(cmnd, "data cmplt err", urb->status);
|
||||
if (status) {
|
||||
if (status != -ENOENT && status != -ECONNRESET && status != -ESHUTDOWN)
|
||||
uas_log_cmd_state(cmnd, "data cmplt err", status);
|
||||
/* error: no data transfered */
|
||||
sdb->resid = sdb->length;
|
||||
} else {
|
||||
|
|
Загрузка…
Ссылка в новой задаче