diff mbox series

[04/16] qla2xxx: Fix warning message due to adisc is being flush

Message ID 20211224070712.17905-5-njavali@marvell.com
State Superseded
Headers show
Series qla2xxx misc bug fixes and features | expand

Commit Message

Nilesh Javali Dec. 24, 2021, 7:07 a.m. UTC
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(+)

Comments

Himanshu Madhani Jan. 3, 2022, 12:37 a.m. UTC | #1
> 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 mbox series

Patch

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);
 	}