scsi: hisi_sas: Fix the race between IO completion and timeout for SMP/internal IO
authorXiang Chen <chenxiang66@hisilicon.com>
Mon, 24 Sep 2018 15:06:30 +0000 (23:06 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 16 Oct 2018 04:27:04 +0000 (00:27 -0400)
commit584f53fe5f529d877968c711a095923c1ed12307
tree0dec9f098326737e4f4f9c68a09de14eed7b427f
parent1668e3b6f8f8ed2ce685691c92b90dfadeaa3f2f
scsi: hisi_sas: Fix the race between IO completion and timeout for SMP/internal IO

If SMP/internal IO times out, we will possibly free the task immediately.

However if the IO actually completes at the same time, the IO completion
may refer to task which has been freed.

So to solve the issue, flush the tasklet to finish IO completion before
free'ing slot/task.

Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_main.c