[PATCH 1/5] scsi: ufs: core: Cancel RTC work during ufshcd_remove()
Peter Wang (王信友)
peter.wang at mediatek.com
Mon Nov 11 18:13:39 PST 2024
On Mon, 2024-11-11 at 23:18 +0530, Manivannan Sadhasivam via B4 Relay
wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> From: Manivannan Sadhasivam <manivannan.sadhasivam at linaro.org>
>
> Currently, RTC work is only cancelled during __ufshcd_wl_suspend().
> When
> ufshcd is removed in ufshcd_remove(), RTC work is not cancelled. Due
> to
> this, any further trigger of the RTC work after ufshcd_remove() would
> result in a NULL pointer dereference as below:
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000000000002a4
> Workqueue: events ufshcd_rtc_work
> Call trace:
> _raw_spin_lock_irqsave+0x34/0x8c
> pm_runtime_get_if_active+0x24/0xb4
> ufshcd_rtc_work+0x124/0x19c
> process_scheduled_works+0x18c/0x2d8
> worker_thread+0x144/0x280
> kthread+0x11c/0x128
> ret_from_fork+0x10/0x20
>
> Since RTC work accesses the ufshcd internal structures, it should be
> cancelled
> when ufshcd is removed. So do that in ufshcd_remove(), as per the
> order in
> ufshcd_init().
>
> Cc: stable at vger.kernel.org # 6.8
> Fixes: 6bf999e0eb41 ("scsi: ufs: core: Add UFS RTC support")
> Signed-off-by: Manivannan Sadhasivam <
> manivannan.sadhasivam at linaro.org>
> ---
> drivers/ufs/core/ufshcd.c | 1 +
> 1 file changed, 1 insertion(+)
>
>
Reviewed-by: Peter Wang <peter.wang at mediatek.com>
More information about the Linux-mediatek
mailing list