diff --git a/[refs] b/[refs] index 6df290da7545..f19a0195f58c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b50102d3e9a43a75379407c2080f696f61cb286b +refs/heads/master: cd06b9bae18c64658d5a86526fb19cfe0ea8814f diff --git a/trunk/drivers/scsi/isci/task.h b/trunk/drivers/scsi/isci/task.h index 4a7fa90287ef..15b18d158993 100644 --- a/trunk/drivers/scsi/isci/task.h +++ b/trunk/drivers/scsi/isci/task.h @@ -286,6 +286,25 @@ isci_task_set_completion_status( task->task_status.resp = response; task->task_status.stat = status; + switch (task->task_proto) { + + case SAS_PROTOCOL_SATA: + case SAS_PROTOCOL_STP: + case SAS_PROTOCOL_SATA | SAS_PROTOCOL_STP: + + if (task_notification_selection + == isci_perform_error_io_completion) { + /* SATA/STP I/O has it's own means of scheduling device + * error handling on the normal path. + */ + task_notification_selection + = isci_perform_normal_io_completion; + } + break; + default: + break; + } + switch (task_notification_selection) { case isci_perform_error_io_completion: