android_kernel_xiaomi_sm8350/drivers/scsi
Mike Christie 77a23c21aa [SCSI] libiscsi: fix iscsi cmdsn allocation
The cmdsn allocation and pdu transmit code can race, and we can end
up sending a pdu with cmdsn 10 before a pdu with 5. The target will
then fail the connection/session. This patch fixes the problem by
delaying the cmdsn allocation until we are about to send the pdu.

This also removes the xmitmutex. We were using the connection xmitmutex
during error handling to handle races with mtask and ctask cleanup and
completion. For ctasks we now have nice refcounting and for the mtask,
if we hit the case where the mtask timesout and it is floating
around somewhere in the driver, we end up dropping the session.
And to handle session level cleanup, we use the xmit suspend bit
along with scsi_flush_queue and the session lock to make sure
that the xmit thread is not possibly transmitting a task while
we are trying to kill it.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Cc: Roland Dreier <rdreier@cisco.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2007-06-02 15:34:14 -04:00
..
aacraid [SCSI] aacraid: Changeable queue depth 2007-06-01 11:39:56 -04:00
aic7xxx [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
aic7xxx_old
aic94xx [SCSI] aic94xx: asd_clear_nexus should fail if the cleared task does not complete 2007-05-22 14:12:45 -05:00
arcmsr [SCSI] arcmsr: convert to use the data buffer accessors 2007-05-27 22:28:21 -05:00
arm [ARM] ecard: add ecardm_iomap() / ecardm_iounmap() 2007-05-11 17:19:02 +01:00
dpt [SCSI] dpt: whitespace cleanup 2007-04-01 10:10:04 -05:00
ibmvscsi [SCSI] ibmvscsi: Changeable queue depth 2007-05-29 22:52:31 -05:00
libsas [SCSI] libsas: convert to use the data buffer accessors 2007-05-29 12:50:54 -05:00
lpfc [SCSI] lpfc 8.1.12 : Change version number to 8.1.12 2007-05-06 09:33:16 -05:00
megaraid [SCSI] megaraid: convert to use the data buffer accessors 2007-05-31 18:38:36 -04:00
pcmcia [SCSI] sym53c500_cs: convert to use the data buffer accessors 2007-05-26 19:09:22 -05:00
qla2xxx [SCSI] qla2xxx: convert to use the data buffer accessors 2007-05-31 12:23:49 -05:00
qla4xxx [SCSI] iscsi class, qla4xxx, iscsi_tcp, ib_iser: export/set initiator name 2007-06-01 12:56:40 -04:00
sym53c8xx_2 Fix misspellings of "agressive". 2007-02-17 19:20:16 +01:00
.gitignore
3w-9xxx.c [SCSI] 3w-9xxx: eliminate missed map_single path 2007-05-31 08:23:02 -05:00
3w-9xxx.h
3w-xxxx.c [SCSI] 3w-xxxx: convert to use the data buffer accessors 2007-05-30 23:29:32 -05:00
3w-xxxx.h
53c700_d.h_shipped
53c700.c [SCSI] 53c700: convert to use the data buffer accessors 2007-05-26 16:30:04 -05:00
53c700.h
53c700.scr
a100u2w.c [SCSI] a100u2w: convert to use the data buffer accessors 2007-05-26 19:12:34 -05:00
a100u2w.h
a2091.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
a2091.h
a3000.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
a3000.h
advansys.c [SCSI] advansys: cleanups 2007-05-27 15:05:10 -05:00
aha152x.c [SCSI] aha152x: use wait_for_completion_timeout 2007-05-22 10:50:19 -05:00
aha152x.h
aha1542.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
aha1542.h
aha1740.c [SCSI] aha1740: convert to use the data buffer accessors 2007-05-26 19:12:56 -05:00
aha1740.h
aic7xxx_old.c [SCSI] aic7xxx_old: convert to use the data buffer accessors 2007-05-27 21:42:56 -05:00
atari_dma_emul.c
atari_NCR5380.c m68k: Atari SCSI workqueue updates 2007-05-04 17:59:06 -07:00
atari_scsi.c m68k: Atari SCSI driver compile fixes 2007-05-04 17:59:05 -07:00
atari_scsi.h m68k: Atari SCSI driver compile fixes 2007-05-04 17:59:05 -07:00
atp870u.c
atp870u.h
blz1230.c
blz2060.c
BusLogic.c [SCSI] BusLogic: convert to use the data buffer accessors 2007-05-26 19:21:37 -05:00
BusLogic.h
ch.c [SCSI] ch: kmalloc/memset->kzalloc 2007-05-06 09:33:11 -05:00
constants.c [SCSI] constants.c: Update ASC list and make it const 2007-03-11 11:21:25 -05:00
cyberstorm.c
cyberstormII.c
dc395x.c Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
dc395x.h
dec_esp.c
dmx3191d.c
dpt_i2o.c [SCSI] dpt_i2o: convert to use the data buffer accessors 2007-05-31 12:25:27 -05:00
dpti.h
dtc.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
dtc.h
eata_generic.h [SCSI] eata_pio: Remove FALSE/TRUE defines 2007-03-20 11:27:03 -05:00
eata_pio.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
eata_pio.h
eata.c [SCSI] eata: convert to use the data buffer accessors 2007-05-26 19:13:55 -05:00
esp_scsi.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
esp_scsi.h [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
fastlane.c
fcal.c
fcal.h
fd_mcs.c
fdomain.c [SCSI] fdomain: fix PCMCIA-related warnings 2007-05-27 12:59:28 -05:00
fdomain.h
FlashPoint.c
g_NCR5380_mmio.c
g_NCR5380.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
g_NCR5380.h
gdth_ioctl.h
gdth_kcompat.h
gdth_proc.c
gdth_proc.h
gdth.c [SCSI] gdth: Fix obvious typo "spin_lock_irqrestore()" 2007-05-30 08:39:52 -05:00
gdth.h
gvp11.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
gvp11.h
hosts.c SCSI: use the proper semaphore to protect the class lists 2007-04-27 10:57:30 -07:00
hptiop.c
hptiop.h
ibmmca.c [SCSI] ibmmca: convert to use the data buffer accessors 2007-05-26 16:30:17 -05:00
ide-scsi.c ide: move IDE settings handling to ide-proc.c 2007-05-10 00:01:10 +02:00
imm.c
imm.h
in2000.c
in2000.h
initio.c [SCSI] initio: convert to use the data buffer accessors 2007-05-26 19:13:27 -05:00
initio.h [SCSI] initio: Convert into a real Linux driver and update to modern style 2007-05-22 11:08:56 -05:00
ipr.c [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
ipr.h [SCSI] ipr: Use PCI-E reset API for new ipr adapter 2007-05-08 11:54:40 -05:00
ips.c [SCSI] ips: remove kernel 2.4 code 2007-05-24 09:14:41 -05:00
ips.h [SCSI] ips: remove kernel 2.4 code 2007-05-24 09:14:41 -05:00
iscsi_tcp.c [SCSI] libiscsi: fix iscsi cmdsn allocation 2007-06-02 15:34:14 -04:00
iscsi_tcp.h [SCSI] iscsi tcp: fix iscsi xmit state machine 2007-06-01 12:59:26 -04:00
jazz_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
Kconfig [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
lasi700.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
libiscsi.c [SCSI] libiscsi: fix iscsi cmdsn allocation 2007-06-02 15:34:14 -04:00
libsrp.c [SCSI] tgt: fix a rdma indirect transfer error bug 2007-05-16 12:45:17 -04:00
mac53c94.c [SCSI] mac53c94: convert to use the data buffer accessors 2007-05-26 19:07:50 -05:00
mac53c94.h
mac_esp.c
mac_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mac_scsi.h
Makefile [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
mca_53c9x.c
megaraid.c [SCSI] megaraid_old: convert to use the data buffer accessors 2007-05-31 18:11:21 -04:00
megaraid.h [SCSI] megaraid: fix warnings when CONFIG_PROC_FS=n 2007-05-08 11:15:08 -05:00
mesh.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-05-08 20:32:16 -07:00
mesh.h
mvme147.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mvme147.h
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c [SCSI] NCR53c406a: convert to use the data buffer accessors 2007-05-26 19:08:20 -05:00
NCR53C9x.c
NCR53C9x.h
NCR5380.c [SCSI] ncr5380 warning fixes 2007-05-24 09:13:25 -05:00
NCR5380.h [SCSI] ncr5380 warning fixes 2007-05-24 09:13:25 -05:00
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c [SCSI] nsp32: convert to use the data buffer accessors 2007-05-30 08:38:50 -05:00
nsp32.h
oktagon_esp.c
oktagon_io.S
osst_detect.h
osst_options.h
osst.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
osst.h [PATCH] osst endianness annotations 2007-02-09 09:14:07 -08:00
pas16.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
pas16.h
pluto.c [SCSI] pluto: Use wait_for_completion_timeout. 2007-05-29 02:49:05 -07:00
pluto.h
ppa.c
ppa.h
psi240i.c
psi240i.h
psi_chip.h
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h
qla1280.c [SCSI] qla1280: use DMA_64BIT_MASK instead of ~ 0ULL 2007-05-06 09:33:11 -05:00
qla1280.h
qlogicfas408.c [SCSI] qlogicfas408: convert to use the data buffer accessors 2007-05-26 19:21:09 -05:00
qlogicfas408.h
qlogicfas.c
qlogicpti_asm.c
qlogicpti.c [SPARC/64] constify of_get_property return: drivers 2007-04-26 01:54:27 -07:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
scsi_debug.h
scsi_devinfo.c [SCSI] stex: fix id mapping issue 2007-05-16 12:40:21 -04:00
scsi_error.c [SCSI] scsi_error: send the sense buffer down without copying 2007-05-24 09:10:02 -05:00
scsi_ioctl.c
scsi_lib.c [SCSI] scsi_lib: add scatter/gather data buffer accessors 2007-05-26 16:29:59 -05:00
scsi_logging.h
scsi_module.c
scsi_netlink.c [NETLINK]: Switch cb_lock spinlock to mutex and allow to override it 2007-04-25 22:29:03 -07:00
scsi_priv.h
scsi_proc.c [SCSI] scsi_proc.c: display sdev->scsi_level correctly 2007-02-16 11:12:07 -06:00
scsi_sas_internal.h
scsi_scan.c [SCSI] fix scsi_wait_scan build problem 2007-03-21 08:15:41 -06:00
scsi_sysctl.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
scsi_sysfs.c [SCSI] kill scsi host template suspend/resume 2007-05-22 10:41:12 -05:00
scsi_tgt_if.c [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
scsi_tgt_lib.c [SCSI] tgt: remove the code to build sense 2007-03-20 10:52:59 -05:00
scsi_tgt_priv.h [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] fc_transport: fix sysfs deadlock on vport delete 2007-05-26 11:47:58 -05:00
scsi_transport_iscsi.c [SCSI] iscsi class, iscsi_tcp, ib_iser: add sysfs chap file 2007-06-01 12:58:58 -04:00
scsi_transport_sas.c Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
scsi_transport_spi.c
scsi_typedefs.h
scsi_wait_scan.c
scsi.c [SCSI] Make error printing more verbose 2007-03-11 11:17:49 -05:00
scsi.h
scsicam.c
sd.c [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
seagate.c
sg.c [SCSI] sg: remove unnecessary check 2007-05-28 09:08:32 -05:00
sgiwd93.c Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sim710.c
sni_53c710.c Replace deprecated SA_xxx interrupt flags 2007-05-08 11:15:08 -07:00
sr_ioctl.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sr_vendor.c
sr.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
sr.h
st_options.h
st.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
st.h
stex.c [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
sun3_NCR5380.c
sun3_scsi_vme.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.h
sun3x_esp.c
sun_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
sym53c416.c [SCSI] sym53c416: convert to use the data buffer accessors 2007-05-26 19:08:50 -05:00
sym53c416.h
t128.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
t128.h
tmscsim.c [SCSI] tmscsim: convert to use the data buffer accessors 2007-05-27 16:11:01 -05:00
tmscsim.h [SCSI] tmscsim: remove bogus endianness conversions 2007-05-06 09:33:21 -05:00
u14-34f.c [SCSI] u14-34f: convert to use the data buffer accessors 2007-05-26 19:19:04 -05:00
ultrastor.c [SCSI] ultrastor: convert to use the data buffer accessors 2007-05-26 19:18:38 -05:00
ultrastor.h
wd33c93.c [SCSI] wd33c93: Fast SCSI with WD33C93B 2007-02-16 09:22:11 -06:00
wd33c93.h [SCSI] wd33c93: Fast SCSI with WD33C93B 2007-02-16 09:22:11 -06:00
wd7000.c [SCSI] wd7000: convert to use the data buffer accessors 2007-05-26 19:18:10 -05:00
zalon.c