WSL2-Linux-Kernel/drivers/scsi
Christoph Hellwig c53c6d6a68 scatterlist: allow chaining to preallocated chunks
Blk-mq drivers usually preallocate their S/G list as part of the request,
but if we want to support the very large S/G lists currently supported by
the SCSI code that would tie up a lot of memory in the preallocated request
pool.  Add support to the scatterlist code so that it can initialize a
S/G list that uses a preallocated first chunks and dynamically allocated
additional chunks.  That way the scsi-mq code can preallocate a first
page worth of S/G entries as part of the request, and dynamically extend
the S/G list when needed.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Webb Scales <webbnh@hp.com>
Acked-by: Jens Axboe <axboe@kernel.dk>
Tested-by: Bart Van Assche <bvanassche@acm.org>
Tested-by: Robert Elliott <elliott@hp.com>
2014-07-25 17:16:21 -04:00
..
aacraid scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
aic7xxx scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
aic94xx
arcmsr scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
arm scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
be2iscsi be2iscsi: remove potential junk pointer free 2014-06-25 13:29:05 +02:00
bfa
bnx2fc scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
bnx2i
csiostor scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
cxgbi scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
device_handler block: add blk_rq_set_block_pc() 2014-06-06 07:57:37 -06:00
dpt
esas2r
fcoe
fnic scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ibmvscsi ibmvstgt: remove 2014-07-17 22:07:43 +02:00
isci
libfc
libsas scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
lpfc scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
megaraid scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
mpt2sas mpt2sas: Add free smids to the head, not tail of list 2014-05-28 18:13:24 +02:00
mpt3sas scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
mvsas drivers: scsi: mvsas: fix compiling issue by adding 'MVS_' for "enum pci_interrupt_cause" 2014-06-20 08:22:39 +08:00
osd block: add blk_rq_set_block_pc() 2014-06-06 07:57:37 -06:00
pcmcia scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
pm8001 pm8001: Fix potential null pointer dereference and memory leak. 2014-06-25 13:29:05 +02:00
qla2xxx scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
qla4xxx scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
sym53c8xx_2 scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ufs scsi: ufs: Improve UFS fatal error handling 2014-05-28 12:25:13 +02:00
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c
BusLogic.h
FlashPoint.c
Kconfig tgt: removal 2014-07-17 22:07:44 +02:00
Makefile tgt: removal 2014-07-17 22:07:44 +02:00
NCR53c406a.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
NCR5380.h scsi/NCR5380: dprintk macro 2014-05-28 18:14:16 +02:00
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
a100u2w.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
aha152x.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
atari_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
atari_scsi.c SCSI for-linus on 20140609 2014-06-09 18:54:06 -07:00
atari_scsi.h scsi/NCR5380: remove unused macro definitions 2014-05-28 12:11:08 +02:00
atp870u.c
atp870u.h
bvme6000_scsi.c
ch.c scsi: Implement ch_printk() 2014-07-17 22:07:40 +02:00
constants.c
dc395x.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
dpti.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
dtc.c scsi/NCR5380: fix and standardize NDEBUG macros 2014-05-28 12:10:43 +02:00
dtc.h
eata.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
eata_generic.h
eata_pio.c
eata_pio.h
esp_scsi.c
esp_scsi.h
fdomain.c
fdomain.h
g_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
g_NCR5380.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
g_NCR5380_mmio.c
gdth.c
gdth.h
gdth_ioctl.h
gdth_proc.c
gdth_proc.h
gvp11.c
gvp11.h
hosts.c scsi: use dev_printk variants where possible 2014-07-17 22:07:42 +02:00
hpsa.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
hpsa.h hpsa: fix event filtering to prevent excessive rescans with old firmware 2014-06-02 09:54:59 +02:00
hpsa_cmd.h hpsa: fix handling of hpsa_volume_offline return value 2014-06-02 09:55:02 +02:00
hptiop.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
hptiop.h
imm.c
imm.h
in2000.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
in2000.h
initio.c
initio.h
ipr.c
ipr.h
ips.c
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c
iscsi_tcp.h
jazz_esp.c
lasi700.c
libiscsi.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
libiscsi_tcp.c
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c scsi/NCR5380: fix and standardize NDEBUG macros 2014-05-28 12:10:43 +02:00
mac_scsi.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
megaraid.c scsi: use 64-bit value for 'max_luns' 2014-07-17 22:07:38 +02:00
megaraid.h
mesh.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c
mvumi.h
ncr53c8xx.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ncr53c8xx.h scsi: Remove CONFIG_SCSI_MULTI_LUN 2014-07-17 22:07:35 +02:00
nsp32.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
nsp32.h
nsp32_debug.c
nsp32_io.h
osst.c block: add blk_rq_set_block_pc() 2014-06-06 07:57:37 -06:00
osst.h
osst_detect.h
osst_options.h
pas16.c
pas16.h scsi/NCR5380: remove redundant HOSTS_C macro tests 2014-05-28 12:05:36 +02:00
pmcraid.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
pmcraid.h
ppa.c
ppa.h
ps3rom.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
qla1280.c
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi.c scsi: fix the {host,target,device}_blocked counter mess 2014-07-25 17:15:48 -04:00
scsi.h
scsi_debug.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_devinfo.c
scsi_error.c scsi: convert host_busy to atomic_t 2014-07-25 07:43:43 -04:00
scsi_ioctl.c scsi: use dev_printk() variants for ioctl 2014-07-17 22:07:41 +02:00
scsi_lib.c scatterlist: allow chaining to preallocated chunks 2014-07-25 17:16:21 -04:00
scsi_lib_dma.c
scsi_logging.h
scsi_module.c
scsi_netlink.c
scsi_pm.c
scsi_priv.h scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_proc.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_sas_internal.h
scsi_scan.c scsi: use dev_printk variants where possible 2014-07-17 22:07:42 +02: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: fix the {host,target,device}_blocked counter mess 2014-07-25 17:15:48 -04:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c tgt: removal 2014-07-17 22:07:44 +02:00
scsi_transport_iscsi.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_transport_sas.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
scsi_transport_spi.c
scsi_transport_srp.c tgt: removal 2014-07-17 22:07:44 +02:00
scsi_typedefs.h
scsicam.c
sd.c sd: split sd_init_command 2014-07-17 22:16:29 +02:00
sd.h sd: Limit transfer length 2014-07-17 22:07:33 +02:00
sd_dif.c
ses.c
sg.c scsi: convert device_busy to atomic_t 2014-07-25 07:43:45 -04:00
sgiwd93.c
sim710.c
sni_53c710.c
sr.c scsi: set sc_data_direction in common code 2014-07-17 22:11:41 +02:00
sr.h scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr_ioctl.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
sr_vendor.c scsi: Implement sr_printk() 2014-07-17 22:07:39 +02:00
st.c scsi: Implement st_printk() 2014-07-17 22:07:41 +02:00
st.h
st_options.h
stex.c
storvsc_drv.c
sun3_NCR5380.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
sun3_scsi.c scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c 2014-05-28 12:16:28 +02:00
sun3_scsi.h scsi/NCR5380: reduce depth of sun3_scsi nested includes 2014-05-28 12:11:33 +02: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
sun_esp.c
sym53c416.c
sym53c416.h
t128.c scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
t128.h scsi/NCR5380: remove old CVS keywords 2014-05-28 12:05:37 +02:00
tmscsim.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
tmscsim.h
u14-34f.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
ultrastor.c
ultrastor.h
virtio_scsi.c virtio-scsi: fix various bad behavior on aborted requests 2014-06-25 13:29:33 +02:00
vmw_pvscsi.c
vmw_pvscsi.h
wd33c93.c scsi: use 64-bit LUNs 2014-07-17 22:07:37 +02:00
wd33c93.h
wd7000.c
zalon.c
zorro7xx.c