summaryrefslogtreecommitdiff
path: root/drivers/scsi/ultrastor.h
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2016-07-07 19:21:48 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-08-21 22:36:22 -0700
commiteffcb63b04b618eb0cb8648a325646867225051c (patch)
tree9c2fcf00dce766631cde302fc8183bcded86aa58 /drivers/scsi/ultrastor.h
parentc605e110ab18604981481a7b502da54640b620bc (diff)
scsi: ufs: fix race between hibern8 failure recovery and error handler
If Hibern8 enter/exit fails and we also see some UIC errors at the same time, we would see following 2 recovery paths running in parallel to restore the host and device communication. Context-1: ufshcd_uic_hibern8_exit() -> ufshcd_link_recovery() -> ufshcd_reset_and_restore() Context-2: ufshcd_err_handler()->ufshcd_reset_and_restore() This change fixes this race by making the ufshcd_link_recovery() to wait for the already scheduled ufshcd_err_handler() to finish running and then schedule the error handler again to make sure that host-device link is reestablished. While we are fixing the above race, similar race could happen between ufshcd_eh_host_reset_handler() and ufshcd_err_handler() hence fix the error handling in ufshcd_eh_host_reset_handler() same way as fixed in ufshcd_link_recovery(). CRs-fixed: 1037647 Change-Id: Ic7a17a907e70122968c324e3cbe6e0421c28a2c9 Signed-off-by: Asutosh Das <asutoshd@codeaurora.org> Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'drivers/scsi/ultrastor.h')
0 files changed, 0 insertions, 0 deletions