]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/scsi/hisi_sas/hisi_sas_main.c
scsi: hisi_sas: Fix a timeout race of driver internal and SMP IO
[mirror_ubuntu-bionic-kernel.git] / drivers / scsi / hisi_sas / hisi_sas_main.c
index 1e3aa7776acccde3aa2d396665afae17c969798f..3c03de9d18ddf9c806ebb15c8c2a4155f864b8ba 100644 (file)
@@ -873,7 +873,8 @@ static void hisi_sas_do_release_task(struct hisi_hba *hisi_hba, struct sas_task
                spin_lock_irqsave(&task->task_state_lock, flags);
                task->task_state_flags &=
                        ~(SAS_TASK_STATE_PENDING | SAS_TASK_AT_INITIATOR);
-               task->task_state_flags |= SAS_TASK_STATE_DONE;
+               if (!slot->is_internal && task->task_proto != SAS_PROTOCOL_SMP)
+                       task->task_state_flags |= SAS_TASK_STATE_DONE;
                spin_unlock_irqrestore(&task->task_state_lock, flags);
        }