[PATCH v2] ufs: core: fix deadlock when rtc update
Bean Huo
huobean at gmail.com
Mon Jul 15 02:34:01 PDT 2024
On Mon, 2024-07-15 at 14:38 +0800, peter.wang at mediatek.com wrote:
> @@ -8171,7 +8171,10 @@ static void ufshcd_update_rtc(struct ufs_hba
> *hba)
> */
> val = ts64.tv_sec - hba->dev_info.rtc_time_baseline;
>
> - ufshcd_rpm_get_sync(hba);
> + /* Skip update RTC if RPM state is not RPM_ACTIVE */
> + if (ufshcd_rpm_get_if_active(hba) <= 0)
> + return;
> +
> err = ufshcd_query_attr(hba, UPIU_QUERY_OPCODE_WRITE_ATTR,
> QUERY_ATTR_IDN_SECONDS_PASSED,
> 0, 0, &val);
> ufshcd_rpm_put_sync(hba);
My suggestion would be to not return here and just skip the update, but
reschedule it for the next time that doesn't affect the suspend/resume
flow you're worried about.
More information about the Linux-mediatek
mailing list