linux-stable/drivers/scsi
Martin K. Petersen b5fc07a5fb scsi: core: Consult supported VPD page list prior to fetching page
Commit c92a6b5d63 ("scsi: core: Query VPD size before getting full
page") removed the logic which checks whether a VPD page is present on
the supported pages list before asking for the page itself. That was
done because SPC helpfully states "The Supported VPD Pages VPD page
list may or may not include all the VPD pages that are able to be
returned by the device server". Testing had revealed a few devices
that supported some of the 0xBn pages but didn't actually list them in
page 0.

Julian Sikorski bisected a problem with his drive resetting during
discovery to the commit above. As it turns out, this particular drive
firmware will crash if we attempt to fetch page 0xB9.

Various approaches were attempted to work around this. In the end,
reinstating the logic that consults VPD page 0 before fetching any
other page was the path of least resistance. A firmware update for the
devices which originally compelled us to remove the check has since
been released.

Link: https://lore.kernel.org/r/20240214221411.2888112-1-martin.petersen@oracle.com
Fixes: c92a6b5d63 ("scsi: core: Query VPD size before getting full page")
Cc: stable@vger.kernel.org
Cc: Bart Van Assche <bvanassche@acm.org>
Reported-by: Julian Sikorski <belegdol@gmail.com>
Tested-by: Julian Sikorski <belegdol@gmail.com>
Reviewed-by: Lee Duncan <lee.duncan@suse.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2024-02-15 14:41:26 -05:00
..
aacraid Revert "scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity" 2023-12-08 12:09:38 -05:00
aic7xxx scsi: aic7xxx: Return negative error codes in aic7770_probe() 2023-12-05 21:18:40 -05:00
aic94xx scsi: libsas: Delete sas_ata_task.retry_count 2023-08-21 17:50:59 -04:00
arcmsr scsi: arcmsr: Update driver version to v1.51.00.14-20230915 2023-11-24 21:23:36 -05:00
arm scsi: powertec: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
be2iscsi scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() 2023-12-05 20:38:26 -05:00
bfa scsi: bfa: Use the proper data type for BLIST flags 2023-11-24 19:23:39 -05:00
bnx2fc SCSI misc on 20240110 2024-01-11 14:24:32 -08:00
bnx2i scsi: bnx2i: Replace all non-returning strlcpy with strscpy 2023-05-26 13:52:19 -07:00
csiostor scsi: csiostor: Replace deprecated strncpy() with strscpy() 2023-11-15 09:05:46 -05:00
cxgbi scsi: cxgbi: Fix 'generated' typo 2023-10-13 14:15:54 -04:00
cxlflash Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
device_handler scsi: rdac: Fix sshdr use 2023-10-13 16:36:20 -04:00
elx scsi: elx: libefc: Replace deprecated strncpy() with strscpy_pad()/memcpy() 2023-11-15 09:46:03 -05:00
esas2r scsi: esas2r: Use FIELD_GET() to extract PCIe capability fields 2023-09-13 21:01:59 -04:00
fcoe scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock" 2024-02-12 20:50:06 -05:00
fnic scsi: fnic: Move fnic_fnic_flush_tx() to a work queue 2024-02-12 20:50:07 -05:00
hisi_sas scsi: hisi_sas: Correct the number of global debugfs registers 2023-12-13 23:24:55 -05:00
ibmvscsi scsi: ibmvscsi: Replace deprecated strncpy() with strscpy() 2023-12-05 21:01:52 -05:00
ibmvscsi_tgt scsi: target: Have drivers report if they support direct submissions 2023-10-13 15:53:57 -04:00
isci scsi: isci: Fix an error code problem in isci_io_request_build() 2024-01-17 14:43:41 -05:00
libfc scsi: libfc: Map FC_TIMED_OUT to DID_TIME_OUT 2023-12-05 21:32:11 -05:00
libsas scsi: libsas: Declare sas_discover_end_dev() static 2023-09-13 21:06:44 -04:00
lpfc scsi: lpfc: Use unsigned type for num_sge 2024-02-05 16:19:11 -05:00
megaraid Merge patch series "megaraid_sas: Driver version update to 07.727.03.00-rc1" 2023-10-13 16:52:47 -04:00
mpi3mr scsi: mpi3mr: Fix mpi3mr_fw.c kernel-doc warnings 2024-01-03 23:12:24 -05:00
mpt3sas scsi: mpt3sas: Suppress a warning in debug kernel 2023-11-15 10:50:31 -05:00
mvsas scsi: libsas: Delete sas_ssp_task.task_prio 2023-08-21 17:50:58 -04:00
pcmcia scsi: Add HAS_IOPORT dependencies 2023-05-31 19:59:26 -04:00
pm8001 scsi: pm8001: Remove PM8001_READ_VPD 2023-09-21 21:39:47 -04:00
qedf Merge patch series "scsi: EH rework prep patches, part 1" 2023-10-13 14:25:20 -04:00
qedi Merge branch '6.5/scsi-fixes' into 6.6/scsi-staging 2023-08-30 20:56:24 -04:00
qla2xxx tracing: Allow creating instances with specified system events 2023-12-18 23:14:16 -05:00
qla4xxx scsi: qla4xxx: Add length check when parsing nlattrs 2023-07-25 21:51:04 -04:00
smartpqi scsi: smartpqi: Bump driver version to 2.1.26-030 2024-01-03 23:09:59 -05:00
snic scsi: snic: Remove useless code in snic_dr_clean_pending_req() 2023-10-24 22:33:02 -04:00
sym53c8xx_2 scsi: sym53c8xx_2: Rework reset handling 2023-10-13 14:23:15 -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: Replace deprecated strncpy() with strscpy() 2023-11-15 08:58:26 -05: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_d.h_shipped
53c700.c scsi: 53c700: Check that command slot is not NULL 2023-07-31 14:38:17 -04:00
53c700.h
53c700.scr
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: Convert to platform remove callback returning void 2023-12-05 21:51:36 -05:00
a3000.h
a4000t.c scsi: a4000t: Convert to platform remove callback returning void 2023-12-05 21:51:36 -05:00
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: atari: Convert to platform remove callback returning void 2023-12-05 21:51:36 -05:00
atp870u.c scsi: atp870u: Declare SCSI host template const 2023-03-24 19:19:21 -04:00
atp870u.h
BusLogic.c scsi: BusLogic: Declare SCSI host template const 2023-03-24 19:19:20 -04:00
BusLogic.h
bvme6000_scsi.c scsi: bvme6000: Convert to platform remove callback returning void 2023-12-05 21:51:36 -05:00
ch.c scsi: ch: Replace deprecated strncpy() with strscpy() 2023-11-15 09:03:58 -05:00
constants.c
dc395x.c scsi: dc395x: Fix warning using plain integer as NULL 2023-11-24 21:08:23 -05: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_isa.c
fdomain_pci.c
fdomain.c scsi: fdomain: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
fdomain.h
FlashPoint.c scsi: FlashPoint: Remove redundant variable bm_int_st 2022-08-01 19:52:03 -04:00
g_NCR5380.c scsi: NCR5380: Declare SCSI host template const 2023-03-24 19:19:22 -04:00
gvp11.c scsi: gvp11: Remove unused gvp11_setup() function 2023-08-21 16:37:11 -04:00
gvp11.h
hosts.c scsi: core: Use 32-bit hostnum in scsi_host_lookup() 2023-08-21 16:42:03 -04:00
hpsa_cmd.h
hpsa.c Merge patch series "Constify most SCSI host templates" 2023-03-24 20:13:03 -04:00
hpsa.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: Add a module parameter for the transfer mode 2023-09-13 21:11:55 -04:00
imm.h scsi: imm: Add a module parameter for the transfer mode 2023-09-13 21:11:55 -04:00
initio.c scsi: initio: Remove redundant variable 'rb' 2024-01-17 14:49:05 -05:00
initio.h scsi: initio: Stop using the SCSI pointer 2022-02-22 21:11:05 -05:00
ipr.c scsi: ipr: Remove obsolete check for old CPUs 2023-12-05 21:05:09 -05:00
ipr.h scsi: ipr: Remove SATA support 2023-04-18 23:01:23 -04:00
ips.c scsi: ips: Do not try to abort command from host reset 2023-10-13 14:23:15 -04:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c scsi: iscsi_tcp: restrict to TCP sockets 2023-09-17 17:46:13 +01: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: jazz_esp: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
Kconfig scsi: imm: Add a module parameter for the transfer mode 2023-09-13 21:11:55 -04:00
lasi700.c
libiscsi_tcp.c scsi: iscsi: Remove iscsi_get_task back_lock requirement 2022-06-21 21:19:23 -04:00
libiscsi.c scsi: iscsi: Declare SCSI host template const 2023-03-24 19:19:57 -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: mac_esp: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
mac_scsi.c scsi: mac: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
Makefile scsi: dpt_i2o: Remove obsolete driver 2022-06-27 22:56:21 -04:00
megaraid.c scsi: megaraid: Fix up debug message in megaraid_abort_and_reset() 2023-10-24 22:40:39 -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 scsi: mvme16x: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
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-08-24 22:11:29 -04: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
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
nsp32_debug.c
nsp32_io.h
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
pmcraid.c scsi: pmcraid: Add missing scsi_device_put() in pmcraid_eh_target_reset_handler() 2023-10-24 22:24:32 -04:00
pmcraid.h scsi: pmcraid: Remove the PMCRAID_PASSTHROUGH_IOCTL ioctl implementation 2022-03-29 23:32:26 -04:00
ppa.c scsi: ppa: Fix accidentally reversed conditions for 16-bit and 32-bit EPP 2023-09-05 05:26:49 -04:00
ppa.h scsi: ppa: Add a module parameter for the transfer mode 2023-08-21 16:32:40 -04:00
ps3rom.c scsi: ps3rom: Declare SCSI host template const 2023-03-24 19:19:58 -04:00
qla1280.c scsi: qla1280: Separate out host reset function from qla1280_error_action() 2023-10-13 14:23:15 -04:00
qla1280.h scsi: qla1280: Move the SCSI pointer to private command data 2022-02-22 21:11:06 -05:00
qlogicfas408.c scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
qlogicfas408.h
qlogicfas.c scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
qlogicpti.c scsi: qlogicpti: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05: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_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 block: remove support for the host aware zone model 2023-12-19 20:17:43 -07:00
scsi_debugfs.c scsi: core: Report error list information in debugfs 2023-08-24 22:13:03 -04: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: core: Move scsi_host_busy() out of host lock if it is for per-command 2024-02-05 16:15:20 -05: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_dma.c
scsi_lib.c scsi: core: Move scsi_host_busy() out of host lock if it is for per-command 2024-02-05 16:15:20 -05:00
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_priv.h scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler 2024-01-23 21:21:51 -05: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-10 14:42:22 +09:00
scsi_sysctl.c scsi: Remove now superfluous sentinel element from ctl_table array 2023-10-11 12:16:13 -07:00
scsi_sysfs.c scsi: core: Improve type safety of scsi_rescan_device() 2023-08-24 22:11:29 -04: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-07-25 21:48:13 -04: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: Fix sshdr use 2023-10-13 16:36:20 -04:00
scsi_transport_srp.c scsi: core: Replace scsi_target_block() with scsi_block_targets() 2023-06-16 12:19:59 -04:00
scsi.c scsi: core: Consult supported VPD page list prior to fetching page 2024-02-15 14:41:26 -05:00
scsicam.c scsicam: Fix use of page cache 2022-05-08 14:28:18 -04: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 block: remove support for the host aware zone model 2023-12-19 20:17:43 -07:00
sd.c scsi: sd: usb_storage: uas: Access media prior to querying device properties 2024-02-14 12:46:47 -05:00
sd.h scsi: sd: Do not issue commands to suspended disks on shutdown 2023-09-28 21:23:18 +09:00
sense_codes.h
ses.c Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
sg.c scsi: Remove now superfluous sentinel element from ctl_table array 2023-10-11 12:16:13 -07:00
sgiwd93.c scsi: sgiwd93: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
sim710.c
sni_53c710.c scsi: sni_53c710: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
sr_ioctl.c scsi: sr: Convert to scsi_execute_cmd() 2023-01-13 21:34:09 -05:00
sr_vendor.c
sr.c scsi: sr: Fix sshdr use in sr_get_events 2023-10-13 16:36:20 -04:00
sr.h sr: implement ->free_disk to simplify refcounting 2022-03-08 19:40:01 -07:00
st_options.h
st.c scsi: st: Add third party poweron reset handling 2023-08-24 22:16:28 -04:00
st.h scsi: don't use disk->private_data to find the scsi_driver 2022-03-08 19:40:00 -07:00
stex.c scsi: stex: Fix gcc 13 warnings 2023-05-31 11:36:40 -04:00
storvsc_drv.c scsi: storvsc: Fix ring buffer size calculation 2024-01-23 21:27:28 -05:00
sun3_scsi_vme.c
sun3_scsi.c scsi: sun3: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
sun3x_esp.c scsi: sun3x_esp: Convert to platform remove callback returning void 2023-12-05 21:51:37 -05:00
sun_esp.c scsi: sun_esp: Convert to platform remove callback returning void 2023-12-05 21:51:38 -05:00
virtio_scsi.c Merge branch '6.8/scsi-staging' into 6.8/scsi-fixes 2024-01-22 15:49:29 -05: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: shost_priv() can never return NULL 2023-08-24 22:06:44 -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