diff options
author | Sujit Reddy Thumma <sthumma@codeaurora.org> | 2014-05-26 10:59:15 +0530 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-05-28 12:25:13 +0200 |
commit | e8e7f27139d5ba5b9f05fdee3f6224116ce8427c (patch) | |
tree | a8e3489ba489593086256f2d996289d9d151c7f5 /fs/internal.h | |
parent | 3441da7ddbdedf91bfd5cc8609c571ffc24942dd (diff) |
scsi: ufs: Improve UFS fatal error handling
Error handling in UFS driver is broken and resets the host controller
for fatal errors without re-initialization. Correct the fatal error
handling sequence according to UFS Host Controller Interface (HCI)
v1.1 specification.
o Processed requests which are completed w/wo error are reported to
SCSI layer and any pending commands that are not started are aborted
in the controller and re-queued into scsi mid-layer queue.
o Upon determining fatal error condition the host controller may hang
forever until a reset is applied. Block SCSI layer for sending new
requests and apply reset in a separate error handling work.
o SCSI is informed about the expected Unit-Attention exception from the
device for the immediate command after a reset so that the SCSI layer
take necessary steps to establish communication with the device.
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Reviewed-by: Yaniv Gardi <ygardi@codeaurora.org>
Tested-by: Dolev Raviv <draviv@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/internal.h')
0 files changed, 0 insertions, 0 deletions