diff --git a/[refs] b/[refs] index d1558e03d578..f37964d675a7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1077a574103177bff22b7cdd155d960f46ac1e8f +refs/heads/master: c4b9e24c4be67aeed44cd46ef5ea92948d02a426 diff --git a/trunk/drivers/scsi/isci/request.c b/trunk/drivers/scsi/isci/request.c index 015643104311..eba8e0b3c873 100644 --- a/trunk/drivers/scsi/isci/request.c +++ b/trunk/drivers/scsi/isci/request.c @@ -449,26 +449,11 @@ int isci_request_execute( list_add(&request->dev_node, &isci_device->reqs_in_process); - if (status == - SCI_FAILURE_REMOTE_DEVICE_RESET_REQUIRED) { - /* Signal libsas that we need the SCSI error - * handler thread to work on this I/O and that - * we want a device reset. - */ - isci_request_signal_device_reset(request); - - /* Change the status, since we are holding - * the I/O until it is managed by the SCSI - * error handler. - */ - status = SCI_SUCCESS; - } - else + if (status == SCI_SUCCESS) { /* Save the tag for possible task mgmt later. */ request->io_tag = scic_io_request_get_io_tag( request->sci_request_handle); - - + } } else dev_warn(&isci_host->pdev->dev, "%s: failed request start\n", @@ -476,6 +461,21 @@ int isci_request_execute( spin_unlock_irqrestore(&isci_host->scic_lock, flags); + if (status == + SCI_FAILURE_REMOTE_DEVICE_RESET_REQUIRED) { + /* Signal libsas that we need the SCSI error + * handler thread to work on this I/O and that + * we want a device reset. + */ + isci_request_signal_device_reset(request); + + /* Change the status, since we are holding + * the I/O until it is managed by the SCSI + * error handler. + */ + status = SCI_SUCCESS; + } + } else dev_warn(&isci_host->pdev->dev, "%s: request_construct failed - status = 0x%x\n",