linux-stable/drivers/scsi
Quinn Tran 07bc6e4244 scsi: qla2xxx: Fix system crash due to bad pointer access
commit 19597cad64 upstream.

User experiences system crash when running AER error injection.  The
perturbation causes the abort-all-I/O path to trigger. The driver assumes
all I/O on this path is FCP only. If there is both NVMe & FCP traffic, a
system crash happens. Add additional check to see if I/O is FCP or not
before access.

PID: 999019  TASK: ff35d769f24722c0  CPU: 53  COMMAND: "kworker/53:1"
 0 [ff3f78b964847b58] machine_kexec at ffffffffae86973d
 1 [ff3f78b964847ba8] __crash_kexec at ffffffffae9be29d
 2 [ff3f78b964847c70] crash_kexec at ffffffffae9bf528
 3 [ff3f78b964847c78] oops_end at ffffffffae8282ab
 4 [ff3f78b964847c98] exc_page_fault at ffffffffaf2da502
 5 [ff3f78b964847cc0] asm_exc_page_fault at ffffffffaf400b62
   [exception RIP: qla2x00_abort_srb+444]
   RIP: ffffffffc07b5f8c  RSP: ff3f78b964847d78  RFLAGS: 00010046
   RAX: 0000000000000282  RBX: ff35d74a0195a200  RCX: ff35d76886fd03a0
   RDX: 0000000000000001  RSI: ffffffffc07c5ec8  RDI: ff35d74a0195a200
   RBP: ff35d76913d22080   R8: ff35d7694d103200   R9: ff35d7694d103200
   R10: 0000000100000000  R11: ffffffffb05d6630  R12: 0000000000010000
   R13: ff3f78b964847df8  R14: ff35d768d8754000  R15: ff35d768877248e0
   ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
 6 [ff3f78b964847d70] qla2x00_abort_srb at ffffffffc07b5f84 [qla2xxx]
 7 [ff3f78b964847de0] __qla2x00_abort_all_cmds at ffffffffc07b6238 [qla2xxx]
 8 [ff3f78b964847e38] qla2x00_abort_all_cmds at ffffffffc07ba635 [qla2xxx]
 9 [ff3f78b964847e58] qla2x00_terminate_rport_io at ffffffffc08145eb [qla2xxx]
10 [ff3f78b964847e70] fc_terminate_rport_io at ffffffffc045987e [scsi_transport_fc]
11 [ff3f78b964847e88] process_one_work at ffffffffae914f15
12 [ff3f78b964847ed0] worker_thread at ffffffffae9154c0
13 [ff3f78b964847f10] kthread at ffffffffae91c456
14 [ff3f78b964847f50] ret_from_fork at ffffffffae8036ef

Cc: stable@vger.kernel.org
Fixes: f45bca8c50 ("scsi: qla2xxx: Fix double scsi_done for abort path")
Signed-off-by: Quinn Tran <qutran@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Link: https://lore.kernel.org/r/20231030064912.37912-1-njavali@marvell.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-28 17:14:59 +00:00
..
aacraid scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
aic7xxx scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
aic94xx scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
arcmsr Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
arm scsi: powertec: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
be2iscsi scsi: be2iscsi: Add length check when parsing nlattrs 2023-09-13 09:53:37 +02:00
bfa scsi: bfa: Replace all non-returning strlcpy() with strscpy() 2023-05-16 21:38:36 -04:00
bnx2fc scsi: bnx2fc: Avoid using get_cpu() in bnx2fc_cmd_alloc() 2022-05-16 21:26:50 -04:00
bnx2i scsi: bnx2i: Replace all non-returning strlcpy with strscpy 2023-05-26 13:52:19 -07:00
csiostor scsi: csiostor: Remove unnecessary aer.h include 2023-03-09 22:00:38 -05:00
cxgbi Networking changes for 6.4. 2023-04-26 16:07:23 -07:00
cxlflash Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
device_handler scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate() 2023-03-16 23:02:23 -04:00
elx Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
esas2r modules-6.4-rc1 2023-04-27 16:36:55 -07:00
fcoe scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock 2023-09-13 09:53:43 +02:00
fnic scsi: fnic: Replace return codes in fnic_clean_pending_aborts() 2023-07-31 14:29:21 -04:00
hisi_sas scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs 2023-11-28 17:14:47 +00:00
ibmvscsi scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool 2023-11-28 17:14:47 +00:00
ibmvscsi_tgt scsi: ibmvscsit: Remove default fabric ops callouts 2023-03-16 23:36:36 -04:00
isci scsi: isci: Fix comment typo 2023-06-28 21:45:27 -04:00
libfc scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() 2023-11-28 17:14:48 +00:00
libsas SCSI misc on 20230629 2023-06-30 11:57:07 -07:00
lpfc scsi: lpfc: Fix the NULL vs IS_ERR() bug for debugfs_create_file() 2023-09-23 11:14:32 +02:00
megaraid scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers 2023-11-28 17:14:59 +00:00
mpi3mr scsi: mpi3mr: Propagate sense data for admin queue SCSI I/O 2023-05-31 20:29:59 -04:00
mpt3sas scsi: mpt3sas: Fix loop logic 2023-11-28 17:14:59 +00:00
mvsas scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
pcmcia scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
pm8001 scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command 2023-10-06 13:16:13 +02:00
qedf scsi: qedf: Add synchronization between I/O completions and abort 2023-10-06 13:16:09 +02:00
qedi scsi: qedi: Fix firmware halt over suspend and resume 2023-08-07 21:34:08 -04:00
qla2xxx scsi: qla2xxx: Fix system crash due to bad pointer access 2023-11-28 17:14:59 +00:00
qla4xxx scsi: qla4xxx: Add length check when parsing nlattrs 2023-09-13 09:53:37 +02:00
smartpqi scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
snic scsi: snic: Fix double free in snic_tgt_create() 2023-08-24 22:30:32 -04:00
sym53c8xx_2 scsi: sym53c8xx: Replace all non-returning strlcpy() with strscpy() 2023-05-31 18:04:30 -04:00
.gitignore
3w-9xxx.c scsi: 3w-9xxx: Replace all non-returning strlcpy with strscpy 2023-05-26 13:52:19 -07:00
3w-9xxx.h
3w-sas.c scsi: 3w-sas: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
3w-sas.h scsi: 3w-sas: Replace 1-element arrays with flexible array members 2023-01-12 00:09:52 -05:00
3w-xxxx.c scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() 2023-05-22 17:31:56 -04:00
3w-xxxx.h scsi: 3w-xxxx: Replace one-element array with flexible-array member 2022-09-25 13:06:00 -04:00
53c700.c scsi: 53c700: Check that command slot is not NULL 2023-07-31 14:38:17 -04:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c scsi: BusLogic: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
BusLogic.h
FlashPoint.c scsi: FlashPoint: Remove redundant variable bm_int_st 2022-08-01 19:52:03 -04:00
Kconfig scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
Makefile scsi: dpt_i2o: Remove obsolete driver 2022-06-27 22:56:21 -04:00
NCR5380.c scsi: NCR5380: Use default @max_active for hostdata->work_q 2023-05-22 15:13:03 -10:00
NCR5380.h scsi: NCR5380: Add SCp members to struct NCR5380_cmd 2022-02-22 21:11:03 -05:00
a100u2w.c scsi: a100u2w: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
a100u2w.h
a2091.c scsi: a2091: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
a2091.h
a3000.c scsi: a3000: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
a3000.h
a4000t.c
advansys.c scsi: advansys: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
aha152x.c scsi: aha152x: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
aha152x.h
aha1542.c scsi: aha1542: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
aha1542.h
aha1740.c scsi: aha1740: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
aha1740.h
am53c974.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
atari_scsi.c scsi: NCR5380: Add SCp members to struct NCR5380_cmd 2022-02-22 21:11:03 -05:00
atp870u.c scsi: atp870u: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
atp870u.h
bvme6000_scsi.c
ch.c scsi: replace the fmode_t argument to scsi_ioctl with a simple bool 2023-06-12 08:04:04 -06:00
constants.c
dc395x.c scsi: dc395x: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
dc395x.h
dmx3191d.c scsi: dmx3191d: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
esp_scsi.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
esp_scsi.h scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
fdomain.c scsi: fdomain: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
fdomain.h
fdomain_isa.c
fdomain_pci.c
g_NCR5380.c scsi: NCR5380: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
gvp11.c scsi: gvp11: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
gvp11.h
hosts.c scsi: core: Use 32-bit hostnum in scsi_host_lookup() 2023-09-13 09:53:43 +02:00
hpsa.c Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
hpsa.h
hpsa_cmd.h
hptiop.c overflow: Add struct_size_t() helper 2023-05-26 13:52:19 -07:00
hptiop.h scsi: hptiop: Replace one-element array with flexible-array member in struct hpt_iop_request_ioctl_command() 2022-09-25 13:04:17 -04:00
imm.c scsi: imm: Declare SCSI host template const 2023-03-24 19:19:56 -04:00
imm.h scsi: imm: Move the SCSI pointer to private command data 2022-02-22 21:11:04 -05:00
initio.c scsi: initio: Declare SCSI host template const 2023-03-24 19:19:56 -04:00
initio.h scsi: initio: Stop using the SCSI pointer 2022-02-22 21:11:05 -05:00
ipr.c scsi: ipr: Remove several unused variables 2023-04-24 23:11:47 -04:00
ipr.h scsi: ipr: Remove SATA support 2023-04-18 23:01:23 -04:00
ips.c scsi: ips: Replace kmap_atomic() with kmap_local_page() 2023-01-18 18:41:12 -05:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c scsi: iscsi_tcp: restrict to TCP sockets 2023-10-06 13:15:53 +02:00
iscsi_tcp.h scsi: iscsi_tcp: Use sendmsg(MSG_SPLICE_PAGES) rather than sendpage 2023-06-24 15:50:13 -07:00
jazz_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
lasi700.c
libiscsi.c scsi: iscsi: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
libiscsi_tcp.c scsi: iscsi: Remove iscsi_get_task back_lock requirement 2022-06-21 21:19:23 -04:00
mac53c94.c scsi: mac53c94: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mac53c94.h scsi: mac53c94: Stop using struct scsi_pointer 2022-02-27 21:35:30 -05:00
mac_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
mac_scsi.c scsi: NCR5380: Add SCp members to struct NCR5380_cmd 2022-02-22 21:11:03 -05:00
megaraid.c scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS 2023-03-24 20:27:17 -04:00
megaraid.h scsi: megaraid: Stop using the SCSI pointer 2022-02-22 21:11:05 -05:00
mesh.c scsi: mesh: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mesh.h scsi: mesh: Stop using struct scsi_pointer 2022-02-27 21:34:02 -05:00
mvme16x_scsi.c
mvme147.c scsi: mvme147: Declare SCSI host template const 2023-03-24 19:19:57 -04:00
mvme147.h
mvumi.c scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
mvumi.h scsi: mvumi: Replace 1-element arrays with flexible array members 2023-01-12 00:11:11 -05:00
myrb.c scsi: myrb: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
myrb.h
myrs.c scsi: myrs: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
myrs.h
ncr53c8xx.c scsi: ncr53c8xx: Replace strlcpy() with strscpy() 2023-06-21 21:13:00 -04:00
ncr53c8xx.h scsi: zalon: Stop using the SCSI pointer 2022-02-22 21:11:07 -05:00
nsp32.c scsi: nsp32: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
nsp32.h scsi: nsp32: Stop using the SCSI pointer 2022-02-22 21:11:06 -05:00
nsp32_debug.c
nsp32_io.h
pmcraid.c Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
pmcraid.h scsi: pmcraid: Remove the PMCRAID_PASSTHROUGH_IOCTL ioctl implementation 2022-03-29 23:32:26 -04:00
ppa.c scsi: ppa: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
ppa.h
ps3rom.c scsi: ps3rom: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
qla1280.c scsi: qla1280: Declare SCSI host template const 2023-03-24 19:19:59 -04:00
qla1280.h scsi: qla1280: Move the SCSI pointer to private command data 2022-02-22 21:11:06 -05:00
qlogicfas.c scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
qlogicfas408.c scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
qlogicfas408.h
qlogicpti.c Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
qlogicpti.h
raid_class.c scsi: core: raid_class: Remove raid_component_add() 2023-08-24 21:34:28 -04:00
script_asm.pl
scsi.c scsi: core: ata: Do no try to probe for CDL on old drives 2023-10-06 13:16:21 +02:00
scsi_bsg.c scsi: replace the fmode_t argument to ->sg_io_fn with a simple bool 2023-06-12 08:04:04 -06:00
scsi_common.c scsi: core: Use min() instead of open-coding it 2023-05-31 11:05:34 -04:00
scsi_debug.c scsi: scsi_debug: Remove dead code 2023-07-05 21:37:43 -04:00
scsi_debugfs.c scsi: core: Remove struct scsi_request 2022-03-01 22:21:50 -05:00
scsi_debugfs.h
scsi_devinfo.c scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR 2023-03-16 22:54:43 -04:00
scsi_dh.c
scsi_error.c scsi: sd: Handle read/write CDL timeout failures 2023-05-22 17:05:19 -04:00
scsi_ioctl.c scsi: replace the fmode_t argument to scsi_ioctl with a simple bool 2023-06-12 08:04:04 -06:00
scsi_lib.c scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
scsi_lib_dma.c
scsi_logging.c scsi: core: scsi_logging: Fix a BUG 2022-03-29 23:29:19 -04:00
scsi_logging.h
scsi_netlink.c
scsi_pm.c scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume() 2021-12-22 23:38:29 -05:00
scsi_priv.h scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
scsi_proc.c scsi: core: Fix legacy /proc parsing buffer overflow 2023-07-31 15:39:39 -04:00
scsi_sas_internal.h
scsi_scan.c scsi: Do not rescan devices with a suspended queue 2023-10-19 23:10:56 +02:00
scsi_sysctl.c scsi: simplify sysctl registration with register_sysctl() 2023-04-13 11:49:20 -07:00
scsi_sysfs.c scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c scsi: core: Replace scsi_target_block() with scsi_block_targets() 2023-06-16 12:19:59 -04:00
scsi_transport_iscsi.c scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param() 2023-09-13 09:53:36 +02:00
scsi_transport_sas.c scsi: core: Support retrieving sub-pages of mode pages 2023-05-22 17:05:19 -04:00
scsi_transport_spi.c scsi: spi: Convert to scsi_execute_cmd() 2023-01-13 21:34:09 -05:00
scsi_transport_srp.c scsi: core: Replace scsi_target_block() with scsi_block_targets() 2023-06-16 12:19:59 -04:00
scsicam.c scsicam: Fix use of page cache 2022-05-08 14:28:18 -04:00
sd.c scsi: sd: Introduce manage_shutdown device flag 2023-11-02 09:36:55 +01:00
sd.h scsi: sd: Do not issue commands to suspended disks on shutdown 2023-10-06 13:16:22 +02:00
sd_dif.c scsi: sd: Update DIX config every time sd_revalidate_disk() is called 2023-02-21 22:00:32 -05:00
sd_trace.h scsi: sd: sd_zbc: Trace zone append emulation 2022-12-01 03:13:55 +00:00
sd_zbc.c scsi: sd_zbc: Set zone limits before revalidating zones 2023-07-05 21:58:10 -04:00
sense_codes.h
ses.c Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
sg.c scsi: sg: Fix checking return value of blk_get_queue() 2023-07-19 23:12:13 -04:00
sgiwd93.c scsi: sgiwd93: Declare SCSI host template const 2023-03-24 19:19:59 -04:00
sim710.c
sni_53c710.c
sr.c SCSI misc on 20230629 2023-06-30 11:57:07 -07:00
sr.h sr: implement ->free_disk to simplify refcounting 2022-03-08 19:40:01 -07:00
sr_ioctl.c scsi: sr: Convert to scsi_execute_cmd() 2023-01-13 21:34:09 -05:00
sr_vendor.c scsi: sr: Don't use GFP_DMA 2021-12-22 23:41:13 -05:00
st.c scsi: replace the fmode_t argument to scsi_ioctl with a simple bool 2023-06-12 08:04:04 -06:00
st.h scsi: don't use disk->private_data to find the scsi_driver 2022-03-08 19:40:00 -07:00
st_options.h
stex.c scsi: stex: Fix gcc 13 warnings 2023-05-31 11:36:40 -04:00
storvsc_drv.c scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
sun3_scsi.c scsi: NCR5380: Add SCp members to struct NCR5380_cmd 2022-02-22 21:11:03 -05:00
sun3_scsi_vme.c
sun3x_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
sun_esp.c Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
virtio_scsi.c scsi: core: Improve type safety of scsi_rescan_device() 2023-10-10 22:02:54 +02:00
vmw_pvscsi.c scsi: vmw_pvscsi: No need to clear memory after a dma_alloc_coherent() call 2022-04-06 23:01:54 -04:00
vmw_pvscsi.h scsi: vmw_pvscsi: Expand vcpuHint to 16 bits 2022-06-07 21:30:56 -04:00
wd33c93.c scsi: wd33c93: Remove dead code related to the long-gone config WD33C93_PIO 2022-09-25 13:29:53 -04:00
wd33c93.h scsi: wd33c93: Remove dead code related to the long-gone config WD33C93_PIO 2022-09-25 13:29:53 -04:00
wd719x.c scsi: wd719x: Declare SCSI host template const 2023-03-24 19:19:59 -04:00
wd719x.h scsi: wd719x: Stop using the SCSI pointer 2022-02-22 21:11:07 -05:00
xen-scsifront.c scsi: xen-scsifront: Declare SCSI host template const 2023-03-24 19:20:00 -04:00
zalon.c scsi: zalon: Stop using the SCSI pointer 2022-02-22 21:11:07 -05:00
zorro7xx.c scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one() 2022-03-30 00:05:42 -04:00
zorro_esp.c scsi: esp_scsi: Declare SCSI host template const 2023-03-24 19:19:22 -04:00