linux/drivers/scsi
Daniel Wagner 3e3f5a8a0f scsi: csiostor: Fix completion usage
The (re)initializing of the completion object should be done before we
trigger the transfer. Doing this after triggering the hardware opens up
a race window. Without the timeout we would problaly even deadlock. Use
also reinit_completion because we initalize the whole data structure in
csio_scscim_init().

There is only one waiter for the completion, therefore there is no need
to use complete_all(). Let's make that clear by using complete() instead
of complete_all().

The usage pattern of the completion is:

waiter context                          waker context

csio_eh_abort_handler()
  reinit_completion()
  wait_for_completion_timeout()

                                        csio_scsi_err_handler()
                                          complete()

[mkp: fix typo]

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2016-09-14 13:19:15 -04:00
..
aacraid scsi: aacraid: mark aac_src_select_comm() static 2016-09-09 07:08:38 -04:00
aic7xxx aic7xxx: Fix queue depth handling 2016-02-23 21:27:02 -05:00
aic94xx scsi: aic94xx: Add missing error code assignment before test 2016-08-25 23:39:25 -04:00
arcmsr arcmsr: change driver version to v1.30.00.22-20151126 2015-11-30 18:51:20 -05:00
arm scsi: rename SCSI_MAX_{SG, SG_CHAIN}_SEGMENTS 2016-04-15 16:53:14 -04:00
be2iscsi scsi: be2iscsi: Add missing unlock for mbox_lock 2016-08-30 22:26:15 -04:00
bfa scsi: bfa: Do not dereference port before it is null checked 2016-09-02 06:09:16 -04:00
bnx2fc scsi: bnx2fc: Mark symbols static where possible 2016-09-09 07:11:07 -04:00
bnx2i bnx2i: fix spelling mistake "complection" -> "completion" 2016-07-12 23:16:31 -04:00
csiostor scsi: csiostor: Fix completion usage 2016-09-14 13:19:15 -04:00
cxgbi cxgb3i, cxgb4i: fix symbol not declared sparse warning 2016-07-25 10:31:09 -07:00
cxlflash scsi: cxlflash: Fix context reference tracking on detach 2016-09-14 12:47:42 -04:00
device_handler Merge branch 'fixes' into misc 2016-05-17 21:12:50 -04:00
dpt
esas2r scsi: esas2r: don't reinitialize adapter's req_table 2016-08-25 22:28:17 -04:00
fcoe scsi: fcoe: provide translation table between Ethernet and FC port speeds 2016-08-23 22:27:47 -04:00
fnic fnic: pci_dma_mapping_error() doesn't return an error code 2016-07-20 20:49:17 -04:00
hisi_sas scsi: hisi_sas: send three identify before phy up 2016-09-14 12:54:18 -04:00
ibmvscsi scsi: ibmvfc: fix typo in parameter description 2016-09-09 07:30:09 -04:00
ibmvscsi_tgt scsi: ibmvscsis: Fixed a bug reported by Dan Carpenter 2016-09-04 01:28:07 -04:00
isci Merge branch 'for-4.7-zac' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2016-05-23 17:53:39 -07:00
libfc scsi: libfc: do not send ABTS when resetting exchanges 2016-08-18 22:35:17 -04:00
libsas SCSI misc on 20160727 2016-07-27 14:48:37 -07:00
lpfc SCSI misc on 20160805 2016-08-05 23:47:27 -04:00
megaraid scsi: megaraid_sas: add in missing white space in error message text 2016-09-14 13:12:28 -04:00
mpt3sas mpt3sas: Don't spam logs if logging level is 0 2016-08-08 21:27:13 -04:00
mvsas libata/libsas: Define ATA_CMD_NCQ_NON_DATA 2016-05-09 12:36:44 -04:00
osd scsi/osd: open code blk_make_request 2016-07-20 17:38:35 -06:00
pcmcia
pm8001 pm8001: fix typo 2016-07-12 23:16:31 -04:00
qla2xxx scsi: qla2xxx: fix spelling mistake "retyring" -> "retrying" 2016-08-31 00:27:34 -04:00
qla4xxx scsi: qla4xxx: Mark symbols static where possible 2016-09-02 06:06:43 -04:00
smartpqi scsi: smartpqi: bump driver version 2016-09-02 14:09:34 -04:00
snic snic: Fix use-after-free in case of a dma mapping error 2016-07-12 23:16:31 -04:00
sym53c8xx_2
ufs scsi: ufs: Fix a wrong string in power mode change 2016-09-09 07:21:25 -04:00
.gitignore
3w-9xxx.c 3w-9xxx: don't unmap bounce buffered commands 2015-10-07 10:24:48 -07:00
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c 3w-xxxx: Pass through compat mode ioctls 2016-01-08 12:51:03 -05:00
3w-xxxx.h
53c700_d.h_shipped
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
a100u2w.c scsi: a100u2w: trivial typo in printk 2015-08-07 15:03:42 +02:00
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c Merge branch 'mkp-fixes' into fixes 2015-12-03 09:32:33 -08:00
aha152x.c
aha152x.h
aha1542.c scsi: aha1542: avoid uninitialized variable warnings 2016-02-23 21:27:02 -05:00
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_scsi.c atari_scsi: Allow can_queue to be increased for Falcon 2016-04-11 16:57:09 -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
BusLogic.c
BusLogic.h
bvme6000_scsi.c
ch.c
constants.c scsi: reduce CONFIG_SCSI_CONSTANTS=y impact by 8k 2016-04-11 16:57:09 -04:00
dc395x.c
dc395x.h
dmx3191d.c ncr5380: Remove DONT_USE_INTR and AUTOPROBE_IRQ macros 2016-04-11 16:57:09 -04:00
dpt_i2o.c dpt_i2o: fix build warning 2016-02-23 21:27:02 -05:00
dpti.h
dtc.c ncr5380: Remove DONT_USE_INTR and AUTOPROBE_IRQ macros 2016-04-11 16:57:09 -04:00
dtc.h ncr5380: Merge DMA implementation from atari_NCR5380 core driver 2016-04-11 16:57:09 -04:00
eata_generic.h
eata_pio.c eata_pio: missing break statement 2016-05-10 22:01:07 -04:00
eata_pio.h
eata.c
esp_scsi.c scsi: use host wide tags by default 2015-11-09 17:11:57 -08:00
esp_scsi.h
fdomain.c scsi: fdomain: drop fdomain_pci_tbl when built-in 2016-02-23 21:27:02 -05:00
fdomain.h
FlashPoint.c FlashPoint: fix build warning 2015-11-09 16:32:14 -08:00
g_NCR5380_mmio.c
g_NCR5380.c ncr5380: Update usage documentation 2016-04-11 16:57:09 -04:00
g_NCR5380.h ncr5380: Merge DMA implementation from atari_NCR5380 core driver 2016-04-11 16:57:09 -04:00
gdth_ioctl.h
gdth_proc.c gdth: replace struct timeval with ktime_get_real_seconds() 2016-02-25 21:16:49 -05:00
gdth_proc.h
gdth.c gdth: replace struct timeval with ktime_get_real_seconds() 2016-02-25 21:16:49 -05:00
gdth.h
gvp11.c
gvp11.h
hosts.c scsi: configure runtime pm before calling device_add in scsi_add_host_with_dma 2016-08-25 23:39:24 -04:00
hpsa_cmd.h hpsa: update copyright information 2016-02-23 21:27:02 -05:00
hpsa.c hpsa: change hpsa_passthru_ioctl timeout 2016-07-15 15:40:54 -04:00
hpsa.h hpsa: correct handling of HBA device removal 2016-04-29 19:08:24 -04:00
hptiop.c hptiop: Support HighPoint RR36xx HBAs and Support SAS tape and SAS media changer 2015-08-12 13:14:57 -07: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
in2000.c
in2000.h
initio.c SCSI: initio: remove duplicate module device table 2015-11-20 11:39:03 -05:00
initio.h
ipr.c scsi: ipr: Add asynchronous error notification 2016-08-25 23:39:15 -04:00
ipr.h scsi: ipr: Add asynchronous error notification 2016-08-25 23:39:15 -04:00
ips.c
ips.h
iscsi_boot_sysfs.c ibft: Expose iBFT acpi header via sysfs 2016-05-16 11:14:29 -04:00
iscsi_tcp.c scsi_tcp: block BH in TCP callbacks 2016-05-19 11:36:49 -07:00
iscsi_tcp.h iscsi_tcp: Use ahash 2016-01-27 20:36:10 +08:00
jazz_esp.c
Kconfig smartpqi: initial commit of Microsemi smartpqi driver 2016-08-12 16:00:09 -04:00
lasi700.c
libiscsi_tcp.c iscsi_tcp: Use ahash 2016-01-27 20:36:10 +08:00
libiscsi.c libiscsi: Remove set-but-not-used variables 2016-04-11 16:57:09 -04:00
mac53c94.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
mac53c94.h
mac_esp.c
mac_scsi.c mac_scsi: Fix pseudo DMA implementation 2016-04-11 16:57:09 -04:00
Makefile smartpqi: initial commit of Microsemi smartpqi driver 2016-08-12 16:00:09 -04:00
megaraid.c megaraid : use dev_printk when possible 2015-08-26 07:23:04 -07:00
megaraid.h
mesh.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c scsi: mvumi: use __maybe_unused to hide pm functions 2016-03-05 17:07:46 -05:00
mvumi.h
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c
NCR5380.c scsi: ncr5380: Avoid a compiler warning 2016-08-31 00:25:18 -04:00
NCR5380.h scsi: ncr5380: Avoid a compiler warning 2016-08-31 00:25:18 -04:00
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c
nsp32.h
osst_detect.h
osst_options.h
osst.c
osst.h
pas16.c ncr5380: Remove DONT_USE_INTR and AUTOPROBE_IRQ macros 2016-04-11 16:57:09 -04:00
pas16.h ncr5380: Merge DMA implementation from atari_NCR5380 core driver 2016-04-11 16:57:09 -04:00
pmcraid.c scsi: pmcraid: mark symbols static where possible 2016-09-04 01:28:07 -04:00
pmcraid.h
ppa.c scsi: ppa: use new parport device model 2016-02-23 21:27:02 -05:00
ppa.h
ps3rom.c
qla1280.c qla1280: Don't allocate 512kb of host tags 2016-04-30 09:25:26 -07:00
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti.c qlogicpti: Return correct error code 2016-03-01 20:06:49 -05:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_common.c scsi: add scsi_set_sense_field_pointer() 2016-04-04 12:07:42 -04:00
scsi_debug.c scsi_debug: fix sleep in invalid context 2016-07-12 23:16:31 -04:00
scsi_devinfo.c SCSI: fix new bug in scsi_dev_info_list string matching 2016-06-29 00:51:31 -04:00
scsi_dh.c scsi_dh: move 'dh_state' sysfs attribute to generic code 2015-12-02 16:29:19 -05:00
scsi_error.c Merge remote-tracking branch 'mkp-scsi/4.7/scsi-fixes' into fixes 2016-06-18 11:59:01 -07:00
scsi_ioctl.c
scsi_lib_dma.c
scsi_lib.c scsi_lib: correctly retry failed zero length REQ_TYPE_FS commands 2016-05-22 14:52:45 -04:00
scsi_logging.c
scsi_logging.h
scsi_module.c
scsi_netlink.c
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: move function declarations to scsi_priv.h 2016-08-31 00:28:32 -04:00
scsi_proc.c scsi: disable automatic target scan 2016-04-11 16:57:09 -04: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: move function declarations to scsi_priv.h 2016-08-31 00:28:32 -04:00
scsi_sysctl.c
scsi_sysfs.c Revert "scsi: fix soft lockup in scsi_remove_target() on module removal" 2016-04-15 16:53:07 -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_transport_fc: Unexport scsi_is_fc_vport() 2016-04-11 16:57:09 -04:00
scsi_transport_iscsi.c scsi_transport_iscsi: Declare local symbols static 2016-04-11 16:57:09 -04:00
scsi_transport_sas.c scsi: disable automatic target scan 2016-04-11 16:57:09 -04:00
scsi_transport_spi.c [SCSI] Fix printk typos in drivers/scsi 2015-08-07 14:28:45 +02:00
scsi_transport_srp.c IB/srp: Avoid using uninitialized variable 2015-07-14 13:20:09 -04:00
scsi_typedefs.h
scsi.c scsi: remove the disable_blk_mq host flag 2016-07-15 15:11:20 -04:00
scsi.h
scsicam.c
sd_dif.c block: Consolidate static integrity profile properties 2015-10-21 14:42:38 -06:00
sd.c - initially based on Jens' 'for-4.8/core' (given all the flag churn) and 2016-07-26 17:12:11 -07:00
sd.h sd: Fix rw_max for devices that report an optimal xfer size 2016-06-01 22:07:47 -04:00
sense_codes.h scsi: move Additional Sense Codes to separate file 2016-04-11 16:57:09 -04:00
ses.c ses: fix discovery of SATA devices in SAS enclosures 2015-12-18 19:29:50 -08:00
sg.c scsi: sg: Use mult_frac, drop MULDIV macro 2016-08-30 22:18:59 -04:00
sgiwd93.c
sim710.c scsi: sim710: fix build warning 2016-02-23 21:27:02 -05:00
sni_53c710.c
sr_ioctl.c
sr_vendor.c
sr.c scsi: sr: constify sr_pm_ops structure 2016-09-04 01:28:08 -04:00
sr.h
st_options.h
st.c st: clear ILI if Medium Error 2016-04-25 22:08:16 -04:00
st.h st: Remove obsolete scsi_tape.max_pfn 2015-11-18 11:59:09 -05:00
stex.c stex: Add S3/S4 support 2016-02-23 21:27:02 -05:00
storvsc_drv.c scsi: storvsc: Filter out storvsc messages CD-ROM medium not present 2016-07-12 23:16:31 -04:00
sun3_scsi_vme.c
sun3_scsi.c ncr5380: Remove disused atari_NCR5380.c core driver 2016-04-11 16:57:09 -04:00
sun3_scsi.h
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
sym53c416.c
sym53c416.h
t128.c ncr5380: Remove DONT_USE_INTR and AUTOPROBE_IRQ macros 2016-04-11 16:57:09 -04:00
t128.h ncr5380: Merge DMA implementation from atari_NCR5380 core driver 2016-04-11 16:57:09 -04:00
u14-34f.c
ultrastor.c
ultrastor.h
virtio_scsi.c virtio/vhost: fixes for 4.2 2015-07-23 13:07:04 -07:00
vmw_pvscsi.c vmw_pvscsi: Change to update maintainer details (name, email) 2016-07-12 23:16:31 -04:00
vmw_pvscsi.h vmw_pvscsi: Change to update maintainer details (name, email) 2016-07-12 23:16:31 -04:00
wd33c93.c
wd33c93.h
wd719x.c [SCSI] Fix printk typos in drivers/scsi 2015-08-07 14:28:45 +02:00
wd719x.h
wd7000.c scsi: wd7000: print sector number as 64-bit 2016-07-12 23:16:31 -04:00
xen-scsifront.c xen: Use correctly the Xen memory terminologies 2015-09-08 18:03:49 +01:00
zalon.c
zorro7xx.c