linux/drivers/scsi/ufs
Yaniv Gardi f550c65b54 scsi: ufs: implement scsi host timeout handler
A race condition exists between request requeueing and scsi layer
error handling:
When UFS driver queuecommand returns a busy status for a request,
it will be requeued and its tag will be freed and set to -1.
At the same time it is possible that the request will timeout and
scsi layer will start error handling for it. The scsi layer reuses
the request and its tag to send error related commands to the device,
however its tag is no longer valid.
As this request was never really sent to the device, there is no
point to start error handling with the device.
Implement the scsi error handling timeout callback and bypass SCSI
error handling for request that were not actually sent to the device.
For such requests simply reset the block layer timer. Otherwise, let
SCSI layer perform the usual error handling.

Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2016-03-14 21:04:45 -04:00
..
Kconfig scsi: ufs-qcom: update configuration option of SCSI_UFS_QCOM component 2015-11-09 17:46:56 -05:00
Makefile ufs-qcom: add support for Qualcomm Technologies Inc platforms 2015-01-20 19:43:26 +01:00
ufs-qcom.c scsi: ufs-qcom: add number of lanes per direction 2016-03-14 21:04:45 -04:00
ufs-qcom.h scsi: ufs-qcom: add QUniPro hardware support and power optimizations 2015-11-09 18:03:55 -05:00
ufs.h ufs: fix typo: MAZ to MAX 2016-02-23 21:27:02 -05:00
ufshcd-pci.c SCSI / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-15 15:11:06 +01:00
ufshcd-pltfrm.c scsi: ufs-qcom: add number of lanes per direction 2016-03-14 21:04:45 -04:00
ufshcd-pltfrm.h scsi: ufs: make the UFS variant a platform device 2015-11-09 18:00:02 -05:00
ufshcd.c scsi: ufs: implement scsi host timeout handler 2016-03-14 21:04:45 -04:00
ufshcd.h scsi: ufs-qcom: add number of lanes per direction 2016-03-14 21:04:45 -04:00
ufshci.h scsi: ufs: add quirk to handle broken UFS HCI version 2015-06-02 13:20:14 -07:00
unipro.h ufs: fix TRUE and FALSE re-define build error 2015-06-15 14:40:50 +02:00