> 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.h...@gmail.com>
Reviewed-by: Avri Altman <avri.alt...@wdc.com>

Reply via email to