Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b80fbdd6 authored by Subhash Jadavani's avatar Subhash Jadavani
Browse files

Revert "scsi: ufshcd: Flush exception event before suspend"



This reverts commit de406d12.

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: default avatarSubhash Jadavani <subhashj@codeaurora.org>
parent 6628ed00
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -9260,7 +9260,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;