linux/drivers/scsi/hisi_sas
Xiaofei Tan 813709f2e1 scsi: hisi_sas: judge result of internal abort
Normally, hardware should ensure that internal abort timeout will never
happen. If happen, it would be an SoC failure. What's more, HW will not
process any other commands if an internal abort hasn't return CQ, and they
will time out also.

So, we should judge the result of internal abort in SCSI EH, if it is failed,
we should give up to do TMF/softreset and return failure to the upper layer
directly.

This patch do following things to achieve this:

1. When internal abort timeout happened, we set return value to -EIO in
   hisi_sas_internal_task_abort().

2. If prep_abort() is not support, let hisi_sas_internal_task_abort() return
   TMF_RESP_FUNC_FAILED.

3. If hisi_sas_internal_task_abort() return an negative number, it can be
   thought that it not executed properly or internal abort timeout. Then we
   won't do behind TMF or softreset, and return failure directly.

Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2017-12-14 21:25:03 -05:00
..
hisi_sas_main.c scsi: hisi_sas: judge result of internal abort 2017-12-14 21:25:03 -05:00
hisi_sas_v1_hw.c scsi: hisi_sas: use an general way to delay PHY work 2017-12-14 21:25:03 -05:00
hisi_sas_v2_hw.c scsi: hisi_sas: do link reset for some CHL_INT2 ints 2017-12-14 21:25:03 -05:00
hisi_sas_v3_hw.c scsi: hisi_sas: do link reset for some CHL_INT2 ints 2017-12-14 21:25:03 -05:00
hisi_sas.h scsi: hisi_sas: do link reset for some CHL_INT2 ints 2017-12-14 21:25:03 -05:00
Kconfig scsi: hisi_sas: add skeleton v3 hw driver 2017-06-19 21:31:25 -04:00
Makefile scsi: hisi_sas: add skeleton v3 hw driver 2017-06-19 21:31:25 -04:00