Message ID | 20240710171057.35066-8-njavali@marvell.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | qla2xxx misc. bug fixes | expand |
On 7/10/24 10:10 AM, Nilesh Javali wrote: > From: Manish Rangankar <mrangankar@marvell.com> > > During vport delete, it is observed that during unload we hit a > crash because of stale entries in outstanding command array. > For all these stale I/O entries, eh_abort was issued and aborted > (fast_fail_io = 2009h) but I/Os could not complete while vport delete > is in process of deleting. > > BUG: kernel NULL pointer dereference, address: 000000000000001c > #PF: supervisor read access in kernel mode > #PF: error_code(0x0000) - not-present page > PGD 0 P4D 0 > Oops: 0000 [#1] PREEMPT SMP NOPTI > Workqueue: qla2xxx_wq qla_do_work [qla2xxx] > RIP: 0010:dma_direct_unmap_sg+0x51/0x1e0 > RSP: 0018:ffffa1e1e150fc68 EFLAGS: 00010046 > RAX: 0000000000000000 RBX: 0000000000000021 RCX: 0000000000000001 > RDX: 0000000000000021 RSI: 0000000000000000 RDI: ffff8ce208a7a0d0 > RBP: ffff8ce208a7a0d0 R08: 0000000000000000 R09: ffff8ce378aac9c8 > R10: ffff8ce378aac8a0 R11: ffffa1e1e150f9d8 R12: 0000000000000000 > R13: 0000000000000000 R14: ffff8ce378aac9c8 R15: 0000000000000000 > FS: 0000000000000000(0000) GS:ffff8d217f000000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 000000000000001c CR3: 0000002089acc000 CR4: 0000000000350ee0 > Call Trace: > <TASK> > qla2xxx_qpair_sp_free_dma+0x417/0x4e0 > ? qla2xxx_qpair_sp_compl+0x10d/0x1a0 > ? qla2x00_status_entry+0x768/0x2830 > ? newidle_balance+0x2f0/0x430 > ? dequeue_entity+0x100/0x3c0 > ? qla24xx_process_response_queue+0x6a1/0x19e0 > ? __schedule+0x2d5/0x1140 > ? qla_do_work+0x47/0x60 > ? process_one_work+0x267/0x440 > ? process_one_work+0x440/0x440 > ? worker_thread+0x2d/0x3d0 > ? process_one_work+0x440/0x440 > ? kthread+0x156/0x180 > ? set_kthread_struct+0x50/0x50 > ? ret_from_fork+0x22/0x30 > </TASK> > > Send out async logout explicitly for all the ports during > vport delete. > > Cc: stable@vger.kernel.org > Signed-off-by: Manish Rangankar <mrangankar@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_mid.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c > index b67416951a5f..76703f2706b8 100644 > --- a/drivers/scsi/qla2xxx/qla_mid.c > +++ b/drivers/scsi/qla2xxx/qla_mid.c > @@ -180,7 +180,7 @@ qla24xx_disable_vp(scsi_qla_host_t *vha) > atomic_set(&vha->loop_state, LOOP_DOWN); > atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); > list_for_each_entry(fcport, &vha->vp_fcports, list) > - fcport->logout_on_delete = 0; > + fcport->logout_on_delete = 1; > > if (!vha->hw->flags.edif_enabled) > qla2x00_wait_for_sess_deletion(vha); Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index b67416951a5f..76703f2706b8 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c @@ -180,7 +180,7 @@ qla24xx_disable_vp(scsi_qla_host_t *vha) atomic_set(&vha->loop_state, LOOP_DOWN); atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); list_for_each_entry(fcport, &vha->vp_fcports, list) - fcport->logout_on_delete = 0; + fcport->logout_on_delete = 1; if (!vha->hw->flags.edif_enabled) qla2x00_wait_for_sess_deletion(vha);