linux-stable/drivers/scsi
David Gibson 25d1d50e23 scsi: virtio_scsi: Always try to read VPD pages
Passed through SCSI targets may have transfer limits which come from the
host SCSI controller or something on the host side other than the target
itself.

To make this work properly, the hypervisor can adjust the target's VPD
information to advertise these limits.  But for that to work, the guest
has to look at the VPD pages, which we won't do by default if it is an
SPC-2 device, even if it does actually support it.

This adds a workaround to address this, forcing devices attached to a
virtio-scsi controller to always check the VPD pages.  This is modelled
on a similar workaround for the storvsc (Hyper-V) SCSI controller,
although that exists for slightly different reasons.

A specific case which causes this is a volume from IBM's IPR RAID
controller (which presents as an SPC-2 device, although it does support
VPD) passed through with qemu's 'scsi-block' device.

[mkp: fixed typo]

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2017-04-19 19:12:11 -04:00
..
aacraid SCSI misc on 20170303 2017-03-03 21:36:56 -08:00
aic7xxx scripts/spelling.txt: add "disble(d)" pattern and fix typo instances 2017-03-09 17:01:09 -08:00
aic94xx scsi: aic94xx: Add a missing call to kfree 2016-11-29 11:21:49 -05:00
arcmsr Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
arm scsi: ncr5380: Use correct types for DMA routines 2016-11-08 17:29:48 -05:00
be2iscsi scsi: be2iscsi: switch to pci_alloc_irq_vectors 2017-03-30 11:37:16 -04:00
bfa scripts/spelling.txt: add "aligment" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
bnx2fc sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
bnx2i sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
csiostor scsi: csiostor: switch to pci_alloc_irq_vectors 2017-04-06 12:57:03 -04:00
cxgbi scsi: cxgb4i: update module description 2017-04-18 21:55:03 -04:00
cxlflash scsi: cxlflash: Introduce hardware queue steering 2017-04-13 22:55:42 -04:00
device_handler scsi: remove scsi_execute_req_flags 2017-02-23 16:57:36 -05:00
dpt
esas2r scsi: esas2r: Remove redundant NULL check on buffer 2017-03-16 19:49:45 -04:00
fcoe scripts/spelling.txt: add "omited" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
fnic scsi: fnic: bug fix for fip.fip_subcode in fnic_fcoe_send_vlan_req 2017-03-23 09:57:23 -04:00
hisi_sas scsi: hisi_sas: controller reset for multi-bits ECC and AXI fatal errors 2017-04-11 22:01:04 -04:00
ibmvscsi scsi: ibmvfc: don't check for failure from mempool_alloc() 2017-04-18 21:50:29 -04:00
ibmvscsi_tgt ibmvscsis: Add SGL limit 2017-02-08 10:51:24 -08:00
isci scsi: isci: switch to pci_alloc_irq_vectors 2016-12-01 08:36:17 -05:00
libfc scsi: libfc: directly call ELS request handlers 2017-04-11 20:58:26 -04:00
libsas scsi: make eh_eflags persistent 2017-04-06 13:07:33 -04:00
lpfc scsi: lpfc: fix potential buffer overflow. 2017-04-18 22:01:19 -04:00
megaraid scsi: megaraid_sas: handle dma_addr_t right on 32-bit 2017-02-15 21:39:45 -05:00
mpt3sas SCSI misc on 20170303 2017-03-03 21:36:56 -08:00
mvsas SCSI misc on 20161213 2016-12-14 10:49:33 -08:00
osd scsi: osd_uld: Check scsi_device_get() return value 2017-04-06 12:43:12 -04:00
pcmcia
pm8001 scsi: pm8001: switch to pci_irq_alloc_vectors 2017-02-06 19:12:30 -05:00
qedf scsi: qedf: fixup compilation warning about atomic_t usage 2017-02-23 16:59:04 -05:00
qedi scsi: libiscsi: qedi: convert iscsi_task.refcount from atomic_t to refcount_t 2017-03-15 18:44:39 -04:00
qla2xxx scsi: qla2xxx: remove some redundant pointer assignments 2017-04-11 20:42:43 -04:00
qla4xxx scsi: qla4xxx: drop redundant init_completion 2017-04-06 13:14:32 -04:00
smartpqi scsi: smartpqi: fix time handling 2017-02-22 18:41:42 -05:00
snic scsi: snic: fix spelling mistake: "Cann't" -> "Cannot" 2017-04-13 22:24:02 -04:00
sym53c8xx_2 scsi: sym53c8xx_2: Use complete() instead complete_all() 2016-09-14 13:19:29 -04:00
ufs Revert "scsi: ufs: add queries retry mechanism" 2017-03-29 22:51:40 -04:00
.gitignore
3w-9xxx.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
3w-9xxx.h scsi: Update 3ware driver email addresses 2016-12-14 15:25:12 -05:00
3w-sas.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
3w-sas.h scsi: Update 3ware driver email addresses 2016-12-14 15:25:12 -05:00
3w-xxxx.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
3w-xxxx.h scsi: Update 3ware driver email addresses 2016-12-14 15:25:12 -05:00
53c700.c scsi: remove current_cmnd field from struct scsi_device 2016-07-13 22:33:23 -04:00
53c700.h scsi: remove current_cmnd field from struct scsi_device 2016-07-13 22:33:23 -04:00
53c700.scr
53c700_d.h_shipped
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c scsi: advansys: fix uninitialized data access 2017-04-04 19:39:39 -04:00
aha152x.c
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_scsi.c scsi: atari_scsi: Reset DMA during bus reset only under ST-DMA lock 2017-01-31 21:39:22 -05:00
atp870u.c
atp870u.h
BusLogic.c
BusLogic.h
bvme6000_scsi.c
ch.c
constants.c scsi: fix upper bounds check of sense key in scsi_sense_key_string() 2016-08-16 00:49:32 -04:00
dc395x.c
dc395x.h
dmx3191d.c scsi: dmx3191d: use module_pci_driver 2016-11-16 20:43:50 -05:00
dpt_i2o.c scsi: dpt_i2o: double free if adpt_i2o_online_hba() fails 2017-01-05 00:21:12 -05:00
dpti.h
eata.c
eata_generic.h
eata_pio.c eata_pio: missing break statement 2016-05-10 22:01:07 -04:00
eata_pio.h
esp_scsi.c
esp_scsi.h
fdomain.c
fdomain.h
FlashPoint.c
g_NCR5380.c scsi: ncr5380: Reduce #include files 2017-01-31 21:38:15 -05:00
gdth.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
gdth.h
gdth_ioctl.h
gdth_proc.c
gdth_proc.h
gvp11.c
gvp11.h
hosts.c scsi: allocate scsi_cmnd structures as part of struct request 2017-01-27 15:08:35 -07:00
hpsa.c scsi: hpsa: change driver version 2017-03-29 22:50:09 -04:00
hpsa.h scsi: hpsa: use designated initializers 2017-01-05 00:21:12 -05:00
hpsa_cmd.h scsi: hpsa: Check for vpd support before sending 2016-09-14 14:19:31 -04:00
hptiop.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
hptiop.h
imm.c
imm.h
initio.c
initio.h
ipr.c scsi: ipr: Fix SATA EH hang 2017-03-23 12:04:05 -04:00
ipr.h scsi: ipr: Driver version 2.6.4 2017-03-23 12:04:05 -04:00
ips.c scsi: ips: don't use custom hex_asc_upper[] table 2016-11-08 17:29:57 -05:00
ips.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
iscsi_boot_sysfs.c ibft: Expose iBFT acpi header via sysfs 2016-05-16 11:14:29 -04:00
iscsi_tcp.c scsi: remove eh_timed_out methods in the transport template 2017-02-06 19:10:03 -05:00
iscsi_tcp.h
jazz_esp.c
Kconfig scsi: mac_scsi: Fix MAC_SCSI=m option when SCSI=m 2017-02-23 17:25:02 -05:00
lasi700.c
libiscsi.c scsi: libiscsi: qedi: convert iscsi_task.refcount from atomic_t to refcount_t 2017-03-15 18:44:39 -04:00
libiscsi_tcp.c
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c scsi: ncr5380: Resolve various static checker warnings 2017-01-31 21:38:35 -05:00
Makefile scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework. 2017-02-22 19:10:59 -05:00
megaraid.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c scsi: mvumi: remove fake transport template 2017-02-06 19:08:17 -05:00
mvumi.h
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c
NCR5380.c scsi: ncr5380: Improve target selection robustness 2017-01-31 21:38:58 -05:00
NCR5380.h scsi: ncr5380: Clean up dead code and redundant macro usage 2017-01-31 21:37:44 -05:00
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32.c
nsp32.h
nsp32_debug.c
nsp32_io.h
osst.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
osst.h
osst_detect.h
osst_options.h
pmcraid.c scsi: pmcraid: switch to pci_alloc_irq_vectors 2017-01-09 23:47:00 -05:00
pmcraid.h scsi: pmcraid: switch to pci_alloc_irq_vectors 2017-01-09 23:47:00 -05:00
ppa.c
ppa.h
ps3rom.c
qla1280.c qla1280: Don't allocate 512kb of host tags 2016-04-30 09:25:26 -07:00
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c
qlogicpti.h qlogicpti: Fix compiler warnings 2016-11-28 15:51:31 -05:00
raid_class.c
script_asm.pl
scsi.c block: introduce blk_rq_is_passthrough 2017-01-31 14:00:34 -07:00
scsi.h
scsi_common.c scsi: always zero sshdr in scsi_normalize_sense 2017-02-22 19:33:00 -05:00
scsi_debug.c scsi: scsi_debug: Add OPTIMAL TRANSFER LENGTH GRANULARITY option. 2017-01-31 22:08:44 -05:00
scsi_devinfo.c scsi: scsi_devinfo: remove synchronous ALUA for NETAPP devices 2016-12-07 18:13:52 -05:00
scsi_dh.c scsi: use 'scsi_device_from_queue()' for scsi_dh 2017-02-22 18:41:42 -05:00
scsi_error.c scsi: make asynchronous aborts mandatory 2017-04-06 13:07:33 -04:00
scsi_ioctl.c scsi: make the sense header argument to scsi_test_unit_ready mandatory 2017-02-22 19:35:24 -05:00
scsi_lib.c scsi: make asynchronous aborts mandatory 2017-04-06 13:07:33 -04:00
scsi_lib_dma.c
scsi_logging.c
scsi_logging.h
scsi_module.c
scsi_netlink.c
scsi_pm.c
scsi_priv.h scsi: make asynchronous aborts mandatory 2017-04-06 13:07:33 -04:00
scsi_proc.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
scsi_sas_internal.h scsi_transport_sas: add 'scsi_target_id' sysfs attribute 2016-03-14 21:05:04 -04:00
scsi_scan.c scsi: Remove one useless stack variable 2016-10-11 18:02:09 -04:00
scsi_sysctl.c
scsi_sysfs.c scsi: avoid a permanent stop of the scsi device's request queue 2016-12-14 15:51:17 -05:00
scsi_trace.c scsi-trace: define ZBC_IN and ZBC_OUT 2016-04-11 16:57:09 -04:00
scsi_transport_api.h
scsi_transport_fc.c scsi: fc: remove redundant check of an unsigned long being less than zero 2017-04-18 21:52:09 -04:00
scsi_transport_iscsi.c scsi: scsi_transport_iscsi: Use flush_work in iscsi_remove_session 2017-03-27 22:03:33 -04:00
scsi_transport_sas.c scripts/spelling.txt: add "intialization" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
scsi_transport_spi.c scsi: merge __scsi_execute into scsi_execute 2017-02-23 16:57:19 -05:00
scsi_transport_srp.c scsi: remove tsk_mgmt_response and it_nexus_response transport methods 2017-02-06 19:10:41 -05:00
scsi_typedefs.h
scsicam.c
sd.c scsi: sd: Return SUCCESS in sd_eh_action() after device offline 2017-04-06 13:07:32 -04:00
sd.h scsi: scsi_error: count medium access timeout only once per EH run 2017-04-06 13:07:32 -04:00
sd_dif.c scsi: sd: Move DIF protection types to t10-pi.h 2016-09-15 09:51:14 -04:00
sd_zbc.c sd_zbc: Force use of READ16/WRITE16 2016-11-14 13:16:42 -07:00
sense_codes.h scsi: move Additional Sense Codes to separate file 2016-04-11 16:57:09 -04:00
ses.c scsi: ses: don't get power status of SES device slot on probe 2017-04-06 12:48:05 -04:00
sg.c scsi: sg: close race condition in sg_remove_sfp_usercontext() 2017-04-11 20:55:20 -04:00
sgiwd93.c scsi: remove incorrect __exit markups 2017-03-15 19:27:46 -04:00
sim710.c
sni_53c710.c scsi: remove incorrect __exit markups 2017-03-15 19:27:46 -04:00
sr.c Merge branch 'for-4.11/next' into for-4.11/linus-merge 2017-02-17 14:08:19 -07:00
sr.h
sr_ioctl.c scsi: merge __scsi_execute into scsi_execute 2017-02-23 16:57:19 -05:00
sr_vendor.c
st.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
st.h
st_options.h
stex.c scsi: stex: Add S6 support 2017-03-15 19:22:10 -04:00
storvsc_drv.c scsi: storvsc: remove return at end of void function 2017-04-13 23:04:02 -04:00
sun3_scsi.c SCSI misc on 20170220 2017-02-21 11:51:42 -08:00
sun3_scsi_vme.c
sun3x_esp.c
sun_esp.c
sym53c416.c
sym53c416.h
virtio_scsi.c scsi: virtio_scsi: Always try to read VPD pages 2017-04-19 19:12:11 -04:00
vmw_pvscsi.c scsi: vmw_pvscsi: switch to pci_alloc_irq_vectors 2017-01-11 22:31:03 -05:00
vmw_pvscsi.h scsi: vmw_pvscsi: switch to pci_alloc_irq_vectors 2017-01-11 22:31:03 -05:00
wd33c93.c
wd33c93.h
wd719x.c drivers/scsi/wd719x.c: remove last declaration using DEFINE_PCI_DEVICE_TABLE 2016-09-01 17:52:01 -07:00
wd719x.h
xen-scsifront.c xen/scsifront: don't request a slot on the ring until request is ready 2016-12-09 10:59:13 +01:00
zalon.c scsi: remove incorrect __exit markups 2017-03-15 19:27:46 -04:00
zorro7xx.c