summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2017-11-16 14:32:28 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-11-21 21:22:39 -0800
commitd409d57f0e5e8f7aa09f0a3c8afcf68590c6324b (patch)
treee83ede4c2774ace7414dfc8f45a3d58da1aa41fd
parentf697ab3e511d5aa651e0ce53410117e3f13d6213 (diff)
Revert "scsi: ufshcd: Flush exception event before suspend"
This reverts commit de406d12ef760a7536a486e19016e8e38251f1bc. In case of a background operations exception, there could be a deadlock: -000|__switch_to() -001|context_switch(inline) -001|__schedule() -002|schedule() -003|schedule_timeout() -004|do_wait_for_common(inline) -004|__wait_for_common(inline) -004|wait_for_common() -005|wait_for_completion() -006|destroy_work_on_stack(inline) -006|flush_work() -007|ufshcd_suspend() -008|ufshcd_runtime_suspend() -009|ufshcd_pltfrm_runtime_suspend() -010|pm_generic_runtime_suspend() -011|__rpm_callback(inline) -011|rpm_callback() -012|rpm_suspend() -013|rpm_idle() -014|__pm_runtime_idle() -015|ufshcd_exception_event_handler() -016|__read_once_size(inline) -016|static_key_count(inline) -016|static_key_false(inline) -016|trace_workqueue_execute_end(inline) -016|process_one_work() -017|__read_once_size(inline) -017|list_empty(inline) -017|worker_thread() -018|kthread() -019|ret_from_fork(asm) Exception handler tried to suspend UFS synchronously and suspend tries to flush the currently running exception handler work which results into deadlock. Revert this change until we find proper fix for this. Change-Id: I2b8efdf583d08a276b987914c1037619eb8b25f7 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
-rw-r--r--drivers/scsi/ufs/ufshcd.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 35575c071760..d6f91405be09 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -8760,7 +8760,6 @@ static int ufshcd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
goto enable_gating;
}
- flush_work(&hba->eeh_work);
ret = ufshcd_link_state_transition(hba, req_link_state, 1);
if (ret)
goto set_dev_active;