diff options
author | Sujit Reddy Thumma <sthumma@codeaurora.org> | 2014-05-26 07:29:14 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-05-28 12:25:13 +0200 |
commit | 3441da7ddbdedf91bfd5cc8609c571ffc24942dd (patch) | |
tree | 0f947767abed6bed588d8de42bd71238fdcaa008 /drivers/scsi/ufs/ufshcd.h | |
parent | scsi: ufs: Fix hardware race conditions while aborting a command (diff) | |
download | linux-3441da7ddbdedf91bfd5cc8609c571ffc24942dd.tar.xz linux-3441da7ddbdedf91bfd5cc8609c571ffc24942dd.zip |
scsi: ufs: Fix device and host reset methods
As of now SCSI initiated error handling is broken because,
the reset APIs don't try to bring back the device initialized and
ready for further transfers.
In case of timeouts, the scsi error handler takes care of handling aborts
and resets. Improve the error handling in such scenario by resetting the
device and host and re-initializing them in proper manner.
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 'drivers/scsi/ufs/ufshcd.h')
-rw-r--r-- | drivers/scsi/ufs/ufshcd.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h index 84d09d1ae881..48c7d9b587f7 100644 --- a/drivers/scsi/ufs/ufshcd.h +++ b/drivers/scsi/ufs/ufshcd.h @@ -180,6 +180,7 @@ struct ufs_dev_cmd { * @pwr_done: completion for power mode change * @tm_condition: condition variable for task management * @ufshcd_state: UFSHCD states + * @eh_flags: Error handling flags * @intr_mask: Interrupt Mask Bits * @ee_ctrl_mask: Exception event control mask * @feh_workq: Work queue for fatal controller error handling @@ -227,6 +228,7 @@ struct ufs_hba { struct completion *pwr_done; u32 ufshcd_state; + u32 eh_flags; u32 intr_mask; u16 ee_ctrl_mask; |