diff options
author | Jeffrey Hugo <jeffrey.l.hugo@gmail.com> | 2020-05-25 23:41:25 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-06-25 16:41:55 +0300 |
commit | 291ae253fb695258fbdf2d73f5f37b43f597e537 (patch) | |
tree | 682e1d8cd8c455fefd35b05a0dd35bee3e5a45db /net/sunrpc | |
parent | b4671b5ca22ec0e81a6fcc30f4a50b0dd78740d5 (diff) | |
download | linux-291ae253fb695258fbdf2d73f5f37b43f597e537.tar.xz |
scsi: ufs-qcom: Fix scheduling while atomic issue
[ Upstream commit 3be60b564de49875e47974c37fabced893cd0931 ]
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().
Link: https://lore.kernel.org/r/20200525204125.46171-1-jeffrey.l.hugo@gmail.com
Fixes: 9c46b8676271 ("scsi: ufs-qcom: dump additional testbus registers")
Reviewed-by: Bean Huo <beanhuo@micron.com>
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/sunrpc')
0 files changed, 0 insertions, 0 deletions