linux/drivers/scsi
Jeff Garzik f281233d3e SCSI host lock push-down
Move the mid-layer's ->queuecommand() invocation from being locked
with the host lock to being unlocked to facilitate speeding up the
critical path for drivers who don't need this lock taken anyway.

The patch below presents a simple SCSI host lock push-down as an
equivalent transformation.  No locking or other behavior should change
with this patch.  All existing bugs and locking orders are preserved.

Additionally, add one parameter to queuecommand,
	struct Scsi_Host *
and remove one parameter from queuecommand,
	void (*done)(struct scsi_cmnd *)

Scsi_Host* is a convenient pointer that most host drivers need anyway,
and 'done' is redundant to struct scsi_cmnd->scsi_done.

Minimal code disturbance was attempted with this change.  Most drivers
needed only two one-line modifications for their host lock push-down.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Acked-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-11-16 13:33:23 -08:00
..
aacraid SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aic7xxx SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aic7xxx_old fix comnment/printk typos concerning "empty" 2010-07-12 18:03:50 +02:00
aic94xx drivers/scsi/aic94xx/aic94xx_init.c: correct the size argument to kmalloc 2010-08-11 08:59:00 -07:00
arcmsr SCSI host lock push-down 2010-11-16 13:33:23 -08:00
arm SCSI host lock push-down 2010-11-16 13:33:23 -08:00
be2iscsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-10-22 17:34:15 -07:00
bfa SCSI host lock push-down 2010-11-16 13:33:23 -08:00
bnx2i Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
cxgbi [SCSI] cxgb4i: ignore informational act-open-rpl message 2010-10-25 16:09:57 -05:00
device_handler [SCSI] scsi_dh_rdac: Add two new SUN devices to rdac_dev_list 2010-10-25 16:13:24 -05:00
dpt
fcoe [SCSI] fcoe: Fix broken NPIV with correction to MAC validation 2010-10-25 15:11:39 -05:00
fnic SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ibmvscsi SCSI host lock push-down 2010-11-16 13:33:23 -08:00
libfc SCSI host lock push-down 2010-11-16 13:33:23 -08:00
libsas SCSI host lock push-down 2010-11-16 13:33:23 -08:00
lpfc SCSI host lock push-down 2010-11-16 13:33:23 -08:00
megaraid SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mpt2sas SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mvsas [SCSI] Unify SAM_ and SAM_STAT_ macros 2010-07-28 09:07:49 -05:00
osd [SCSI] libosd: write/read_sg_kern API 2010-10-26 10:42:35 -05:00
pcmcia SCSI host lock push-down 2010-11-16 13:33:23 -08:00
pm8001 [SCSI] pm8001: handle allocation failures 2010-09-09 15:31:54 -05:00
qla2xxx SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qla4xxx SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sym53c8xx_2 SCSI host lock push-down 2010-11-16 13:33:23 -08:00
.gitignore
3w-9xxx.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
3w-9xxx.h [SCSI] 3w-xxxx, 3w-9xxx: force 60 second timeout 2010-04-11 09:23:25 -05:00
3w-sas.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
3w-sas.h
3w-xxxx.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
3w-xxxx.h [SCSI] 3w-xxxx, 3w-9xxx: force 60 second timeout 2010-04-11 09:23:25 -05:00
53c700.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
BusLogic.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
FlashPoint.c
Kconfig Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
Makefile [SCSI] cxgb3i: change cxgb3i to use libcxgbi 2010-09-05 14:29:23 -03:00
NCR53c406a.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
NCR5380.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
NCR5380.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
NCR_D700.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
NCR_D700.h
NCR_Q720.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
NCR_Q720.h
a100u2w.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
a100u2w.h
a2091.c m68k/scsi: a2091 - Do not use legacy Scsi_Host.base 2010-05-26 19:51:08 +02:00
a2091.h m68k/scsi: a2091 - Kill a2091_scsiregs typedef 2010-05-26 19:51:07 +02:00
a3000.c m68k/scsi: a3000 - Do not use legacy Scsi_Host.base 2010-05-26 19:51:08 +02:00
a3000.h m68k/scsi: a3000 - Kill a3000_scsiregs typedef 2010-05-26 19:51:07 +02:00
a4000t.c m68k: amiga - A4000T SCSI platform device conversion 2010-05-26 19:51:09 +02:00
advansys.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha152x.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha152x.h
aha1542.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha1542.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha1740.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
aha1740.h
aic7xxx_old.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atari_NCR5380.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atari_scsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atari_scsi.h
atp870u.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
atp870u.h
bvme6000_scsi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ch.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
constants.c [SCSI] Fix warning: zero-length gnu_printf format string 2010-09-02 17:15:31 -03:00
dc395x.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
dc395x.h
dmx3191d.c
dpt_i2o.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
dpti.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
dtc.c
dtc.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
eata.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
eata_generic.h
eata_pio.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
eata_pio.h
esp_scsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
esp_scsi.h
fd_mcs.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
fdomain.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
fdomain.h
g_NCR5380.c g_NCR5380: fix broken MMIO compilation 2010-08-11 08:59:00 -07:00
g_NCR5380.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
g_NCR5380_mmio.c
gdth.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
gdth.h
gdth_ioctl.h
gdth_proc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
gdth_proc.h
gvp11.c m68k/scsi: gvp11 - Do not use legacy Scsi_Host.base 2010-05-26 19:51:08 +02:00
gvp11.h m68k: amiga - GVP Series II SCSI zorro_driver conversion 2010-05-26 19:51:08 +02:00
hosts.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2010-10-22 19:36:42 -07:00
hpsa.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
hpsa.h [SCSI] hpsa: remove unused firm_ver member of the per-hba structure 2010-07-27 12:01:15 -05:00
hpsa_cmd.h [SCSI] hpsa: Fix hard reset code. 2010-07-27 12:02:00 -05:00
hptiop.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
hptiop.h
ibmmca.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
imm.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
imm.h
in2000.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
in2000.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
initio.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
initio.h
ipr.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ipr.h [SCSI] ipr: add definitions for a new adapter 2010-10-25 16:29:02 -05:00
ips.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ips.h
iscsi_boot_sysfs.c [SCSI] iscsi boot: mv iscsi_boot_sysfs to drivers/scsi 2010-08-06 10:45:07 -05:00
iscsi_tcp.c [SCSI] iscsi_tcp: remove sk_sleep check 2010-05-25 10:04:10 -05:00
iscsi_tcp.h [SCSI] iscsi_tcp: Remove unused field iscsi_conn from struct iscsi_sw_tcp_conn 2010-04-11 14:04:05 -05:00
jazz_esp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lasi700.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
libiscsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
libiscsi_tcp.c [SCSI] iscsi_tcp: change & to && 2010-04-11 14:03:59 -05:00
libsrp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mac53c94.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mac53c94.h
mac_esp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mac_scsi.c
mac_scsi.h
megaraid.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
megaraid.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mesh.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
mesh.h
mvme16x_scsi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mvme147.c m68k/scsi: mvme147 - Kill obsolete HOSTS_C logic 2010-05-26 19:51:07 +02:00
mvme147.h [SCSI] mvme147: Reindentation 2010-05-02 15:55:03 -04:00
ncr53c8xx.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ncr53c8xx.h
nsp32.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
nsp32.h
nsp32_debug.c
nsp32_io.h
osst.c scsi: autoconvert trivial BKL users to private mutex 2010-09-15 21:00:45 +02:00
osst.h
osst_detect.h
osst_options.h
pas16.c
pas16.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
pmcraid.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
pmcraid.h [SCSI] pmcraid: add support for set timestamp command and other fixes 2010-10-29 12:03:01 -05:00
ppa.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ppa.h
ps3rom.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qla1280.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qla1280.h
qlogicfas.c
qlogicfas408.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qlogicfas408.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qlogicpti.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
qlogicpti.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
raid_class.c
script_asm.pl
scsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
scsi.h
scsi_debug.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
scsi_devinfo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi_error.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
scsi_ioctl.c
scsi_lib.c [SCSI] Fix regressions in scsi_internal_device_block 2010-10-25 09:48:32 -05:00
scsi_lib_dma.c
scsi_logging.h
scsi_module.c
scsi_netlink.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi_pm.c [SCSI] implement runtime Power Management 2010-07-28 09:07:50 -05:00
scsi_priv.h SCSI: remove fake "address-of" expression 2010-08-06 09:17:02 -07:00
scsi_proc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi_sas_internal.h
scsi_scan.c driver core: remove CONFIG_SYSFS_DEPRECATED_V2 but keep it for block devices 2010-10-22 10:16:43 -07:00
scsi_sysctl.c
scsi_sysfs.c [SCSI] Fix race when removing SCSI devices 2010-10-25 15:00:47 -05:00
scsi_tgt_if.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
scsi_tgt_lib.c [SCSI] tgt: fix warning 2010-08-11 00:55:42 -04:00
scsi_tgt_priv.h
scsi_trace.c [SCSI] scsi_trace: Enhance SCSI command tracing 2010-04-30 12:52:08 -05:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] fc class: add fc host dev loss sysfs file 2010-10-07 17:09:44 -05:00
scsi_transport_fc_internal.h
scsi_transport_iscsi.c [SCSI] iscsi transport: fix kernel-doc notation 2010-09-09 15:30:08 -05:00
scsi_transport_sas.c
scsi_transport_spi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
scsi_transport_srp.c
scsi_transport_srp_internal.h
scsi_typedefs.h
scsi_wait_scan.c
scsicam.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sd.c [SCSI] sd: Export effective protection mode in sysfs 2010-10-25 14:57:44 -05:00
sd.h [SCSI] sd: Fix overflow with big physical blocks 2010-10-11 17:33:20 -05:00
sd_dif.c block: Make the integrity mapped property a bio flag 2010-10-15 15:49:20 +02:00
ses.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sg.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
sgiwd93.c
sim710.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sni_53c710.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sr.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2010-10-22 20:30:48 -07:00
sr.h
sr_ioctl.c [SCSI] sr: fix sr_drive_status handling when initialization required 2010-10-25 15:12:51 -05:00
sr_vendor.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
st.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2010-10-22 17:34:15 -07:00
st.h
st_options.h
stex.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sun3_NCR5380.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sun3_scsi.c block: remove wrappers for request type/flags 2010-08-07 18:17:56 +02:00
sun3_scsi.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sun3_scsi_vme.c block: remove wrappers for request type/flags 2010-08-07 18:17:56 +02:00
sun3x_esp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sun_esp.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sym53c416.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
sym53c416.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
t128.c
t128.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
tmscsim.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
tmscsim.h
u14-34f.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ultrastor.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
ultrastor.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
vmw_pvscsi.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
vmw_pvscsi.h
wd33c93.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
wd33c93.h SCSI host lock push-down 2010-11-16 13:33:23 -08:00
wd7000.c SCSI host lock push-down 2010-11-16 13:33:23 -08:00
zalon.c
zorro7xx.c m68k: amiga - Zorro bus modalias support 2010-05-17 21:37:41 +02:00