RE: [PATCH] scsi: ufs-qcom: Fix scheduling while atomic issue

From: Avri Altman
Date: Tue May 26 2020 - 02:25:52 EST



> ufs_qcom_dump_dbg_regs() uses usleep_range, a sleeping function, but can
> be called from atomic context in the following flow:
>
> ufshcd_intr -> ufshcd_sl_intr -> ufshcd_check_errors ->
> ufshcd_print_host_regs -> ufshcd_vops_dbg_register_dump ->
> ufs_qcom_dump_dbg_regs
>
> This causes a boot crash on the Lenovo Miix 630 when the interrupt is
> handled on the idle thread.
>
> Fix the issue by switching to udelay().
>
> Fixes: 9c46b8676271 ("scsi: ufs-qcom: dump additional testbus registers")
> Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@xxxxxxxxx>
Reviewed-by: Avri Altman <avri.altman@xxxxxxx>