projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0a6f4d7
)
scsi: qla2xxx: If fcport is undergoing deletion complete I/O with retry
author
Saurav Kashyap
<skashyap@marvell.com>
Wed, 2 Dec 2020 13:23:10 +0000
(
05:23
-0800)
committer
Martin K. Petersen
<martin.petersen@oracle.com>
Wed, 9 Dec 2020 16:34:18 +0000
(11:34 -0500)
Driver unload with I/Os in flight causes server to crash. Complete I/O
with DID_IMM_RETRY if fcport undergoing deletion.
CPU: 44 PID: 35008 Comm: qla2xxx_4_dpc Kdump: loaded Tainted: G
OE X 5.3.18-22-default #1 SLE15-SP2 (unreleased)
Hardware name: HPE ProLiant DL380 Gen10/ProLiant DL380 Gen10, BIOS U30 07/16/2020
RIP: 0010:dma_direct_unmap_sg+0x24/0x60
Code: 4c 8b 04 24 eb b9 0f 1f 44 00 00 85 d2 7e 4e 41 57
4d 89 c7 41 56 41 89 ce 41 55 49 89 fd 41 54 41 89 d4 55 31 ed 53 48 89
f3 <8b> 53 18 48 8b 73 10 4d 89 f8 44 89 f1 4c 89 ef 83 c5 01 e8 44 ff
RSP: 0018:
ffffc0c661037d88
EFLAGS:
00010046
RAX:
0000000000000000
RBX:
0000000000000000
RCX:
0000000000000002
RDX:
000000000000001d
RSI:
0000000000000000
RDI:
ffff9a51ee53b0b0
RBP:
0000000000000000
R08:
0000000000000000
R09:
ffff9a51ee53b0b0
R10:
ffffc0c646463dc8
R11:
ffff9a4a067087c8
R12:
000000000000001d
R13:
ffff9a51ee53b0b0
R14:
0000000000000002
R15:
0000000000000000
FS:
0000000000000000
(0000) GS:
ffff9a523f800000
(0000) knlGS:
0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
CR2:
0000000000000018
CR3:
000000043740a004
CR4:
00000000007606e0
DR0:
0000000000000000
DR1:
0000000000000000
DR2:
0000000000000000
DR3:
0000000000000000
DR6:
00000000fffe0ff0
DR7:
0000000000000400
PKRU:
55555554
Call Trace:
qla2xxx_qpair_sp_free_dma+0x20d/0x3c0 [qla2xxx]
qla2xxx_qpair_sp_compl+0x35/0x90 [qla2xxx]
__qla2x00_abort_all_cmds+0x180/0x390 [qla2xxx]
? qla24xx_process_purex_list+0x100/0x100 [qla2xxx]
qla2x00_abort_all_cmds+0x5e/0x80 [qla2xxx]
qla2x00_do_dpc+0x317/0xa30 [qla2xxx]
kthread+0x10d/0x130
? kthread_park+0xa0/0xa0
ret_from_fork+0x35/0x40
Link:
https://lore.kernel.org/r/20201202132312.19966-14-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_os.c
patch
|
blob
|
history
diff --git
a/drivers/scsi/qla2xxx/qla_os.c
b/drivers/scsi/qla2xxx/qla_os.c
index
f102256
..
f80abe2
100644
(file)
--- a/
drivers/scsi/qla2xxx/qla_os.c
+++ b/
drivers/scsi/qla2xxx/qla_os.c
@@
-884,8
+884,8
@@
qla2xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
goto qc24_fail_command;
}
- if (!fcport) {
- cmd->result = DID_
NO_CONNECT
<< 16;
+ if (!fcport
|| fcport->deleted
) {
+ cmd->result = DID_
IMM_RETRY
<< 16;
goto qc24_fail_command;
}
@@
-966,8
+966,8
@@
qla2xxx_mqueuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd,
goto qc24_fail_command;
}
- if (!fcport) {
- cmd->result = DID_
NO_CONNECT
<< 16;
+ if (!fcport
|| fcport->deleted
) {
+ cmd->result = DID_
IMM_RETRY
<< 16;
goto qc24_fail_command;
}