OpenCloudOS-Kernel/drivers/scsi
Todd Poynor 8d26f49111 scsi: sg: recheck MMAP_IO request length with lock held
Commit 1bc0eb0446 ("scsi: sg: protect accesses to 'reserved' page
array") adds needed concurrency protection for the "reserve" buffer.
Some checks that are initially made outside the lock are replicated once
the lock is taken to ensure the checks and resulting decisions are made
using consistent state.

The check that a request with flag SG_FLAG_MMAP_IO set fits in the
reserve buffer also needs to be performed again under the lock to ensure
the reserve buffer length compared against matches the value in effect
when the request is linked to the reserve buffer.  An -ENOMEM should be
returned in this case, instead of switching over to an indirect buffer
as for non-MMAP_IO requests.

Signed-off-by: Todd Poynor <toddpoynor@google.com>
Acked-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2017-08-24 22:29:08 -04:00
..
aacraid scsi: aacraid: complete all commands during bus reset 2017-08-07 14:04:00 -04:00
aic7xxx scsi: aic7xxx: regenerate firmware files 2017-08-10 19:36:51 -04:00
aic94xx scsi: remove DRIVER_ATTR() usage 2017-08-07 14:04:02 -04:00
arcmsr arcmsr: add const to bin_attribute structures 2017-08-10 19:40:50 -04:00
arm scsi: ncr5380: Use correct types for DMA routines 2016-11-08 17:29:48 -05:00
be2iscsi scsi: be2iscsi: Replace PCI pool old API 2017-08-07 14:04:01 -04:00
bfa scsi: bfa: use designated initializers 2017-04-21 10:11:34 -04:00
bnx2fc SCSI misc on 20170704 2017-07-06 12:10:33 -07:00
bnx2i scsi: bnx2i: missing error code in bnx2i_ep_connect() 2017-06-26 15:01:03 -04:00
csiostor scsi: csiostor: Replace PCI pool old API 2017-08-07 14:04:01 -04:00
cxgbi scsi: libcxgbi: use ndev->ifindex to find route 2017-08-10 19:36:52 -04:00
cxlflash scsi: cxlflash: Fix an error handling path in 'cxlflash_disk_attach()' 2017-08-24 22:28:54 -04:00
device_handler scsi: scsi_dh_alua: remove synchronous STPG support 2017-06-26 12:44:35 -04:00
dpt sched/wait: Rename wait_queue_t => wait_queue_entry_t 2017-06-20 12:18:27 +02:00
esas2r scsi: esas2r: constify pci_device_id. 2017-08-24 22:28:52 -04:00
fcoe SCSI misc on 20170704 2017-07-06 12:10:33 -07:00
fnic scsi: fnic: fix format string overflow warning 2017-08-07 14:04:01 -04:00
hisi_sas scsi: hisi_sas: remove driver versioning 2017-08-24 22:28:50 -04:00
ibmvscsi scsi: ibmvfc: constify dev_pm_ops structures. 2017-07-01 17:05:22 -04:00
ibmvscsi_tgt Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2017-07-13 14:27:32 -07:00
isci scsi: isci: fix typo in function names 2017-07-12 17:09:57 -04:00
libfc scsi: libfc: pass an error pointer to fc_disc_error() 2017-07-12 17:25:12 -04:00
libsas scsi: sas: scsi_queue_work can fail, so make callers aware 2017-06-27 21:28:04 -04:00
lpfc scsi: lpfc: Replace PCI pool old API 2017-08-07 14:04:01 -04:00
megaraid scsi: megaraid_sas: fix allocate instance->pd_info twice 2017-08-10 19:55:35 -04:00
mpt3sas scsi: mpt3sas: fix pr_info message continuation 2017-08-24 22:28:59 -04:00
mvsas scsi: mvsas: replace kfree with scsi_host_put 2017-08-10 19:55:35 -04:00
osd blk-map: call blk_queue_bounce from blk_rq_append_bio 2017-06-27 12:13:21 -06:00
pcmcia scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
pm8001 scsi: pm8001: fix double free in pm8001_pci_probe 2017-08-10 19:55:35 -04:00
qedf scsi: qedf: Update driver version to 8.20.5.0. 2017-08-24 22:29:04 -04:00
qedi scsi: qedi: Limit number for CQ queues. 2017-08-24 22:28:50 -04:00
qla2xxx scsi: qla2xxx: fix spelling mistake of variable sfp_additonal_info 2017-08-24 22:29:01 -04:00
qla4xxx scsi: qla4xxx: fix spelling mistake: "Tempalate" -> "Template" 2017-04-26 18:34:34 -04:00
smartpqi scsi: smartpqi: change driver version to 1.1.2-125 2017-08-10 19:58:26 -04:00
snic scsi: snic: fix a couple of spelling mistakes/typos 2017-07-01 17:13:56 -04:00
sym53c8xx_2 scsi: sym53c8xx: Avoid undefined behaviour 2017-08-24 22:28:54 -04:00
ufs scsi: ufs: flush eh_work when eh_work scheduled. 2017-07-01 16:51:23 -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: 53c700: switch to dma_alloc_attrs 2017-06-26 15:01:05 -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
BusLogic.c scsi: BusLogic: fix incorrect spelling of adatper_reset_req 2017-04-21 10:31:33 -04:00
BusLogic.h scsi: BusLogic: fix incorrect spelling of adatper_reset_req 2017-04-21 10:31:33 -04:00
FlashPoint.c FlashPoint: fix build warning 2015-11-09 16:32:14 -08:00
Kconfig scsi: lpfc: fix linking against modular NVMe support 2017-07-24 22:21:55 -04:00
Makefile scsi: Implement blk_mq_ops.show_rq() 2017-04-26 15:09:04 -06:00
NCR53c406a.c scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
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
a100u2w.c scsi: a100u2w: trivial typo in printk 2015-08-07 15:03:42 +02:00
a100u2w.h
a2091.c
a2091.h
a3000.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
a3000.h
a4000t.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
advansys.c scsi: advansys: fix uninitialized data access 2017-04-04 19:39:39 -04:00
aha152x.c Annotate hardware config module parameters in drivers/scsi/ 2017-04-20 12:02:32 +01:00
aha152x.h
aha1542.c scsi: aha1542: constify pnp_device_id 2017-08-24 22:29:07 -04:00
aha1542.h aha1542: fix include guard and remove useless changelog 2015-04-09 18:08:31 -07:00
aha1740.c scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
aha1740.h scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
am53c974.c am53c974: Fix crash during modprobe 2015-04-17 10:13:56 -07:00
atari_scsi.c scsi: atari_scsi: Use m68k_realnum_memory for FastRAM test 2017-06-12 20:48:08 -04:00
atp870u.c atp870u: Introduce atp870_init() 2015-11-25 22:08:55 -05:00
atp870u.h atp870u: Remove scam_on from struct atp_unit 2015-11-25 22:08:52 -05:00
bvme6000_scsi.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
ch.c scsi: ch: add refcounting 2017-08-24 22:29:06 -04:00
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 scsi: print single-character strings with seq_putc 2015-02-02 09:57:46 -08:00
dc395x.h
dmx3191d.c scsi: dmx3191d: use module_pci_driver 2016-11-16 20:43:50 -05:00
dpt_i2o.c scsi: dpt_i2o: remove redundant null check on array device 2017-08-10 19:55:35 -04:00
dpti.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
eata.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
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 scsi: esp_scsi: Always clear msg_out_len after MESSAGE OUT phase 2017-08-10 19:55:35 -04:00
esp_scsi.h scsi: esp_scsi: Clean up control flow and dead code 2017-08-10 19:55:34 -04:00
fdomain.c scsi: fdomain: drop fdomain_pci_tbl when built-in 2016-02-23 21:27:02 -05:00
fdomain.h
g_NCR5380.c scsi: ncr5380: constify pnp_device_id 2017-08-24 22:29:05 -04:00
gdth.c scsi: gdth: avoid buffer overflow warning 2017-08-07 14:04:01 -04:00
gdth.h
gdth_ioctl.h
gdth_proc.c scsi: gdth: increase the procfs event buffer size 2017-08-07 14:04:02 -04:00
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: fix the device_id in hpsa_update_device_info() 2017-08-24 22:29:08 -04:00
hpsa.h scsi: hpsa: add support for legacy boards 2017-08-24 22:28:55 -04:00
hpsa_cmd.h scsi: hpsa: update identify physical device structure 2017-06-12 20:48:00 -04:00
hptiop.c scsi: hptiop: make function hptiop_iop_request_callback_itl static 2017-06-26 15:01:02 -04:00
hptiop.h hptiop: Support HighPoint RR36xx HBAs and Support SAS tape and SAS media changer 2015-08-12 13:14:57 -07:00
imm.c imm: check parport_claim 2016-02-25 21:10:53 -05:00
imm.h
initio.c SCSI: initio: remove duplicate module device table 2015-11-20 11:39:03 -05:00
initio.h
ipr.c SCSI misc on 20170503 2017-05-04 12:19:44 -07:00
ipr.h scsi: ipr: Driver version 2.6.4 2017-03-23 12:04:05 -04:00
ips.c sched/wait: Rename wait_queue_t => wait_queue_entry_t 2017-06-20 12:18:27 +02:00
ips.h sched/wait: Rename wait_queue_t => wait_queue_entry_t 2017-06-20 12:18:27 +02:00
iscsi_boot_sysfs.c ibft: Expose iBFT acpi header via sysfs 2016-05-16 11:14:29 -04:00
iscsi_tcp.c treewide: convert PF_MEMALLOC manipulations to new helpers 2017-05-08 17:15:15 -07:00
iscsi_tcp.h iscsi_tcp: Use ahash 2016-01-27 20:36:10 +08:00
jazz_esp.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
lasi700.c
libiscsi.c scsi: libiscsi: use kvzalloc for iscsi_pool_init 2017-06-12 20:48:04 -04:00
libiscsi_tcp.c iscsi_tcp: Use ahash 2016-01-27 20:36:10 +08:00
mac53c94.c scsi: Convert to using %pOF instead of full_name 2017-08-07 14:04:02 -04:00
mac53c94.h
mac_esp.c scsi: mac_esp: Fix PIO transfers for MESSAGE IN phase 2017-08-10 19:55:34 -04:00
mac_scsi.c scsi: ncr5380: Resolve various static checker warnings 2017-01-31 21:38:35 -05:00
megaraid.c scsi: megaraid: fix format-overflow warning 2017-08-07 14:04:01 -04:00
megaraid.h [SCSI] megaraid: simplify internal command handling 2014-03-27 08:26:31 -07:00
mesh.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
mesh.h
mvme16x_scsi.c scsi: drop owner assignment from platform_drivers 2014-10-20 16:21:33 +02:00
mvme147.c
mvme147.h
mvumi.c scsi: mvumi: remove code handling zero scsi_sg_count(scmd) case 2017-04-24 18:16:49 -04:00
mvumi.h
ncr53c8xx.c scsi: drop reason argument from ->change_queue_depth 2014-11-24 14:45:27 +01:00
ncr53c8xx.h scsi: Remove CONFIG_SCSI_MULTI_LUN 2014-07-17 22:07:35 +02:00
nsp32.c scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
nsp32.h
nsp32_debug.c
nsp32_io.h
osst.c scsi: osst: silence underflow warning in osst_verify_frame() 2017-08-24 22:29:01 -04:00
osst.h
osst_detect.h
osst_options.h
pmcraid.c scsi: pmcraid: fix duplicated code for different branches 2017-08-24 22:29:05 -04:00
pmcraid.h scsi: pmcraid: Replace PCI pool old API 2017-08-07 14:04:01 -04:00
ppa.c scsi: ppa: use new parport device model 2016-02-23 21:27:02 -05:00
ppa.h
ps3rom.c scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
qla1280.c ia64, scsi: update references for the device-io book 2017-05-16 08:44:21 -03:00
qla1280.h
qlogicfas.c Annotate hardware config module parameters in drivers/scsi/ 2017-04-20 12:02:32 +01:00
qlogicfas408.c
qlogicfas408.h
qlogicpti.c qlogicpti: Return correct error code 2016-03-01 20:06:49 -05:00
qlogicpti.h qlogicpti: Fix compiler warnings 2016-11-28 15:51:31 -05:00
raid_class.c
script_asm.pl
scsi.c scsi: default to scsi-mq 2017-06-27 21:31:12 -04: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 UUID/GUID updates: 2017-07-03 09:55:26 -07:00
scsi_debugfs.c scsi: Implement blk_mq_ops.show_rq() 2017-04-26 15:09:04 -06:00
scsi_debugfs.h scsi: Implement blk_mq_ops.show_rq() 2017-04-26 15:09:04 -06: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 misc on 20170704 2017-07-06 12:10:33 -07: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 'state' device attribute pollable 2017-08-24 22:28:53 -04:00
scsi_lib_dma.c
scsi_logging.c scsi_logging: return void for dev_printk() functions 2015-02-04 08:00:24 -08:00
scsi_logging.h scsi: simplify scsi_log_(send|completion) 2014-11-12 11:16:05 +01:00
scsi_module.c
scsi_netlink.c netlink: extended ACK reporting 2017-04-13 13:58:20 -04:00
scsi_pm.c scsi: Set request queue runtime PM status back to active on resume 2016-02-19 10:52:45 -05:00
scsi_priv.h scsi: Only add commands to the device command list if required by the LLD 2017-06-12 20:55:59 -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 misc on 20170704 2017-07-06 12:10:33 -07:00
scsi_sysctl.c scsi: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
scsi_sysfs.c scsi: scsi-sysfs: Adjust error returned for adapter reset request 2017-08-24 22:29:06 -04: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: start decoupling fc_block_scsi_eh from scsi_cmnd 2017-08-07 14:04:02 -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 block: don't set bounce limit in blk_init_allocated_queue 2017-06-27 12:13:45 -06: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: make 'state' device attribute pollable 2017-08-24 22:28:53 -04:00
scsi_typedefs.h
scsicam.c scsi: fix some kernel-doc markups 2017-05-16 08:44:15 -03:00
sd.c SCSI misc on 20170704 2017-07-06 12:10:33 -07:00
sd.h sd: add support for TCG OPAL self encrypting disks 2017-06-29 10:21:15 -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 SCSI misc on 20170503 2017-05-04 12:19:44 -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: make page2 support optional 2017-08-24 22:28:59 -04:00
sg.c scsi: sg: recheck MMAP_IO request length with lock held 2017-08-24 22:29:08 -04:00
sgiwd93.c scsi: sgiwd93: switch to dma_alloc_attrs 2017-06-26 15:01:06 -04:00
sim710.c scsi: sim710: fix build warning 2016-02-23 21:27:02 -05:00
sni_53c710.c scsi: remove incorrect __exit markups 2017-03-15 19:27:46 -04:00
sr.c scsi: sr: Sanity check returned mode data 2017-04-07 17:07:14 -04:00
sr.h scsi: introduce sdev_prefix_printk() 2014-11-12 11:15:57 +01:00
sr_ioctl.c scsi: merge __scsi_execute into scsi_execute 2017-02-23 16:57:19 -05:00
sr_vendor.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
st.c block: Make most scsi_req_init() calls implicit 2017-06-20 19:27:14 -06:00
st.h st: Remove obsolete scsi_tape.max_pfn 2015-11-18 11:59:09 -05:00
st_options.h
stex.c scsi: stex: make S6flag static 2017-04-26 18:32:29 -04:00
storvsc_drv.c scsi: storvsc: use default I/O timeout handler for FC devices 2017-06-26 12:33:26 -04:00
sun3_scsi.c SCSI misc on 20170220 2017-02-21 11:51:42 -08:00
sun3_scsi_vme.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3x_esp.c arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead 2015-08-10 23:07:05 -04:00
sun_esp.c scsi: sun_esp: fix device reference leaks 2017-06-27 21:46:55 -04:00
sym53c416.c scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
sym53c416.h
virtio_scsi.c scsi: virtio: virtio_scsi: Set can_queue to the length of the virtqueue. 2017-08-24 22:28:51 -04:00
vmw_pvscsi.c scsi: vmw_pvscsi: handle the return value from pci_alloc_irq_vectors correctly 2017-03-06 22:27:33 -05:00
vmw_pvscsi.h scsi: vmw_pvscsi: switch to pci_alloc_irq_vectors 2017-01-11 22:31:03 -05:00
wd33c93.c scsi: print single-character strings with seq_putc 2015-02-02 09:57:46 -08:00
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 scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
xen-scsifront.c scsi: xen-scsifront: Remove code that zeroes driver-private command data 2017-06-12 21:02:04 -04:00
zalon.c scsi: remove incorrect __exit markups 2017-03-15 19:27:46 -04:00
zorro7xx.c