projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
dffa114
)
scsi: qla2xxx: Fix null pointer access during disconnect from subsystem
author
Quinn Tran
<qutran@marvell.com>
Thu, 6 Aug 2020 11:10:12 +0000
(
04:10
-0700)
committer
Martin K. Petersen
<martin.petersen@oracle.com>
Tue, 18 Aug 2020 02:40:15 +0000
(22:40 -0400)
NVMEAsync command is being submitted to QLA while the same NVMe controller
is in the middle of reset. The reset path has deleted the association and
freed aen_op->fcp_req.private. Add a check for this private pointer before
issuing the command.
...
6 [
ffffb656ca11fce0
] page_fault at
ffffffff8c00114e
[exception RIP: qla_nvme_post_cmd+394]
RIP:
ffffffffc0d012ba
RSP:
ffffb656ca11fd98
RFLAGS:
00010206
RAX:
ffff8fb039eda228
RBX:
ffff8fb039eda200
RCX:
00000000000da161
RDX:
ffffffffc0d4d0f0
RSI:
ffffffffc0d26c9b
RDI:
ffff8fb039eda220
RBP:
0000000000000013
R8:
ffff8fb47ff6aa80
R9:
0000000000000002
R10:
0000000000000000
R11:
ffffb656ca11fdc8
R12:
ffff8fb27d04a3b0
R13:
ffff8fc46dd98a58
R14:
0000000000000000
R15:
ffff8fc4540f0000
ORIG_RAX:
ffffffffffffffff
CS: 0010 SS: 0018
7 [
ffffb656ca11fe08
] nvme_fc_start_fcp_op at
ffffffffc0241568
[nvme_fc]
8 [
ffffb656ca11fe50
] nvme_fc_submit_async_event at
ffffffffc0241901
[nvme_fc]
9 [
ffffb656ca11fe68
] nvme_async_event_work at
ffffffffc014543d
[nvme_core]
10 [
ffffb656ca11fe98
] process_one_work at
ffffffff8b6cd437
11 [
ffffb656ca11fed8
] worker_thread at
ffffffff8b6cdcef
12 [
ffffb656ca11ff10
] kthread at
ffffffff8b6d3402
13 [
ffffb656ca11ff50
] ret_from_fork at
ffffffff8c000255
--
PID: 37824 TASK:
ffff8fb033063d80
CPU: 20 COMMAND: "kworker/u97:451"
0 [
ffffb656ce1abc28
] __schedule at
ffffffff8be629e3
1 [
ffffb656ce1abcc8
] schedule at
ffffffff8be62fe8
2 [
ffffb656ce1abcd0
] schedule_timeout at
ffffffff8be671ed
3 [
ffffb656ce1abd70
] wait_for_completion at
ffffffff8be639cf
4 [
ffffb656ce1abdd0
] flush_work at
ffffffff8b6ce2d5
5 [
ffffb656ce1abe70
] nvme_stop_ctrl at
ffffffffc0144900
[nvme_core]
6 [
ffffb656ce1abe80
] nvme_fc_reset_ctrl_work at
ffffffffc0243445
[nvme_fc]
7 [
ffffb656ce1abe98
] process_one_work at
ffffffff8b6cd437
8 [
ffffb656ce1abed8
] worker_thread at
ffffffff8b6cdb50
9 [
ffffb656ce1abf10
] kthread at
ffffffff8b6d3402
10 [
ffffb656ce1abf50
] ret_from_fork at
ffffffff8c000255
Link:
https://lore.kernel.org/r/20200806111014.28434-10-njavali@marvell.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_nvme.c
patch
|
blob
|
history
diff --git
a/drivers/scsi/qla2xxx/qla_nvme.c
b/drivers/scsi/qla2xxx/qla_nvme.c
index
2722ffc
..
90bbc61
100644
(file)
--- a/
drivers/scsi/qla2xxx/qla_nvme.c
+++ b/
drivers/scsi/qla2xxx/qla_nvme.c
@@
-536,6
+536,11
@@
static int qla_nvme_post_cmd(struct nvme_fc_local_port *lport,
struct nvme_private *priv = fd->private;
struct qla_nvme_rport *qla_rport = rport->private;
+ if (!priv) {
+ /* nvme association has been torn down */
+ return rval;
+ }
+
fcport = qla_rport->fcport;
if (!qpair || !fcport || (qpair && !qpair->fw_started) ||