Message ID | 20211224070712.17905-5-njavali@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | qla2xxx misc bug fixes and features | expand |
> On Dec 23, 2021, at 11:07 PM, Nilesh Javali <njavali@marvell.com> wrote: > > From: Quinn Tran <qutran@marvell.com> > > Fix warning message due to adisc is being flush. > Linux kernel triggered a warning message where a different > error code type is not matching up with the expected type. This > patch adds additional translation of one error code type to another. > > WARNING: CPU: 2 PID: 1131623 at drivers/scsi/qla2xxx/qla_init.c:498 > qla2x00_async_adisc_sp_done+0x294/0x2b0 [qla2xxx] > CPU: 2 PID: 1131623 Comm: drmgr Not tainted 5.13.0-rc1-autotest #1 > .. > GPR28: c000000aaa9c8890 c0080000079ab678 c00000140a104800 c00000002bd19000 > NIP [c00800000790857c] qla2x00_async_adisc_sp_done+0x294/0x2b0 [qla2xxx] > LR [c008000007908578] qla2x00_async_adisc_sp_done+0x290/0x2b0 [qla2xxx] > Call Trace: > [c00000001cdc3620] [c008000007908578] qla2x00_async_adisc_sp_done+0x290/0x2b0 [qla2xxx] (unreliable) > [c00000001cdc3710] [c0080000078f3080] __qla2x00_abort_all_cmds+0x1b8/0x580 [qla2xxx] > [c00000001cdc3840] [c0080000078f589c] qla2x00_abort_all_cmds+0x34/0xd0 [qla2xxx] > [c00000001cdc3880] [c0080000079153d8] qla2x00_abort_isp_cleanup+0x3f0/0x570 [qla2xxx] > [c00000001cdc3920] [c0080000078fb7e8] qla2x00_remove_one+0x3d0/0x480 [qla2xxx] > [c00000001cdc39b0] [c00000000071c274] pci_device_remove+0x64/0x120 > [c00000001cdc39f0] [c0000000007fb818] device_release_driver_internal+0x168/0x2a0 > [c00000001cdc3a30] [c00000000070e304] pci_stop_bus_device+0xb4/0x100 > [c00000001cdc3a70] [c00000000070e4f0] pci_stop_and_remove_bus_device+0x20/0x40 > [c00000001cdc3aa0] [c000000000073940] pci_hp_remove_devices+0x90/0x130 > [c00000001cdc3b30] [c0080000070704d0] disable_slot+0x38/0x90 [rpaphp] [ > c00000001cdc3b60] [c00000000073eb4c] power_write_file+0xcc/0x180 > [c00000001cdc3be0] [c0000000007354bc] pci_slot_attr_store+0x3c/0x60 > [c00000001cdc3c00] [c00000000055f820] sysfs_kf_write+0x60/0x80 [c00000001cdc3c20] > [c00000000055df10] kernfs_fop_write_iter+0x1a0/0x290 > [c00000001cdc3c70] [c000000000447c4c] new_sync_write+0x14c/0x1d0 > [c00000001cdc3d10] [c00000000044b134] vfs_write+0x224/0x330 > [c00000001cdc3d60] [c00000000044b3f4] ksys_write+0x74/0x130 > [c00000001cdc3db0] [c00000000002df70] system_call_exception+0x150/0x2d0 > [c00000001cdc3e10] [c00000000000d45c] system_call_common+0xec/0x278 > > Reported-by: Abdul Haleem <abdhalee@linux.vnet.ibm.com> > Cc: stable@vger.kernel.org > Signed-off-by: Quinn Tran <qutran@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_init.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c > index 0b641a803f7c..e54c31296fab 100644 > --- a/drivers/scsi/qla2xxx/qla_init.c > +++ b/drivers/scsi/qla2xxx/qla_init.c > @@ -295,6 +295,8 @@ static void qla2x00_async_login_sp_done(srb_t *sp, int res) > ea.iop[0] = lio->u.logio.iop[0]; > ea.iop[1] = lio->u.logio.iop[1]; > ea.sp = sp; > + if (res) > + ea.data[0] = MBS_COMMAND_ERROR; > qla24xx_handle_plogi_done_event(vha, &ea); > } > > @@ -557,6 +559,8 @@ static void qla2x00_async_adisc_sp_done(srb_t *sp, int res) > ea.iop[1] = lio->u.logio.iop[1]; > ea.fcport = sp->fcport; > ea.sp = sp; > + if (res) > + ea.data[0] = MBS_COMMAND_ERROR; > > qla24xx_handle_adisc_event(vha, &ea); > /* ref: INIT */ > @@ -1237,6 +1241,8 @@ static void qla2x00_async_prli_sp_done(srb_t *sp, int res) > ea.sp = sp; > if (res == QLA_OS_TIMER_EXPIRED) > ea.data[0] = QLA_OS_TIMER_EXPIRED; > + else if (res) > + ea.data[0] = MBS_COMMAND_ERROR; > > qla24xx_handle_prli_done_event(vha, &ea); > } > -- > 2.23.1 > Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> -- Himanshu Madhani Oracle Linux Engineering
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 0b641a803f7c..e54c31296fab 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -295,6 +295,8 @@ static void qla2x00_async_login_sp_done(srb_t *sp, int res) ea.iop[0] = lio->u.logio.iop[0]; ea.iop[1] = lio->u.logio.iop[1]; ea.sp = sp; + if (res) + ea.data[0] = MBS_COMMAND_ERROR; qla24xx_handle_plogi_done_event(vha, &ea); } @@ -557,6 +559,8 @@ static void qla2x00_async_adisc_sp_done(srb_t *sp, int res) ea.iop[1] = lio->u.logio.iop[1]; ea.fcport = sp->fcport; ea.sp = sp; + if (res) + ea.data[0] = MBS_COMMAND_ERROR; qla24xx_handle_adisc_event(vha, &ea); /* ref: INIT */ @@ -1237,6 +1241,8 @@ static void qla2x00_async_prli_sp_done(srb_t *sp, int res) ea.sp = sp; if (res == QLA_OS_TIMER_EXPIRED) ea.data[0] = QLA_OS_TIMER_EXPIRED; + else if (res) + ea.data[0] = MBS_COMMAND_ERROR; qla24xx_handle_prli_done_event(vha, &ea); }