Commit eeb1b55
scsi: ufs: Fix tm request when non-fatal error happens
When non-fatal error like line-reset happens, ufshcd_err_handler() starts
to abort tasks by ufshcd_try_to_abort_task(). When it tries to issue a task
management request, we hit two warnings:
WARNING: CPU: 7 PID: 7 at block/blk-core.c:630 blk_get_request+0x68/0x70
WARNING: CPU: 4 PID: 157 at block/blk-mq-tag.c:82 blk_mq_get_tag+0x438/0x46c
After fixing the above warnings we hit another tm_cmd timeout which may be
caused by unstable controller state:
__ufshcd_issue_tm_cmd: task management cmd 0x80 timed-out
Then, ufshcd_err_handler() enters full reset, and kernel gets stuck. It
turned out ufshcd_print_trs() printed too many messages on console which
requires CPU locks. Likewise hba->silence_err_logs, we need to avoid too
verbose messages. This is actually not an error case.
Link: https://lore.kernel.org/r/20210107185316.788815-3-jaegeuk@kernel.org
Fixes: 69a6c26 ("scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs")
Reviewed-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>1 parent 4ee7ee5 commit eeb1b55
1 file changed
Lines changed: 13 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4994 | 4994 | | |
4995 | 4995 | | |
4996 | 4996 | | |
4997 | | - | |
| 4997 | + | |
| 4998 | + | |
4998 | 4999 | | |
4999 | 5000 | | |
5000 | 5001 | | |
| |||
6300 | 6301 | | |
6301 | 6302 | | |
6302 | 6303 | | |
6303 | | - | |
6304 | | - | |
6305 | | - | |
| 6304 | + | |
| 6305 | + | |
| 6306 | + | |
| 6307 | + | |
| 6308 | + | |
| 6309 | + | |
| 6310 | + | |
6306 | 6311 | | |
6307 | 6312 | | |
6308 | 6313 | | |
| |||
6346 | 6351 | | |
6347 | 6352 | | |
6348 | 6353 | | |
6349 | | - | |
| 6354 | + | |
| 6355 | + | |
| 6356 | + | |
| 6357 | + | |
6350 | 6358 | | |
6351 | 6359 | | |
6352 | 6360 | | |
| |||
0 commit comments