From d409d57f0e5e8f7aa09f0a3c8afcf68590c6324b Mon Sep 17 00:00:00 2001 From: Subhash Jadavani Date: Thu, 16 Nov 2017 14:32:28 -0800 Subject: [PATCH] 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 --- drivers/scsi/ufs/ufshcd.c | 1 - 1 file changed, 1 deletion(-) 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;