android_kernel_samsung_msm8976/drivers/scsi
Michael Reed 52aeeca900 [SCSI] stale residual returned on write following BUSY retry
A BUSY status returned on a write request results in a stale residual
being returned when the write ultimately successfully completes.

This can be reproduced as follows:

1) issue immediate mode rewind to scsi tape drive
2) issue write request

The tape drive returns busy.  The low level driver detects underrun and
sets the residual into the scsi command.  The low level driver responds
with (DID_OK << 16) | scsi_status.  scsi_status is 8, hence
status_byte(result) == 4, i.e., BUSY.

scsi_softirq_done() calls scsi_decide_disposition() which returns
ADD_TO_MLQUEUE.  scsi_softirq_done() then calls scsi_queue_insert()
which, on the way to resubmitting the request to the driver, calls
scsi_init_cmd_errh().

The attached patch modifies scsi_init_cmd_errh() to clear the resid
field.  This prevents a "stale" residual from being returned when the
scsi command finally completes without a BUSY status.

Signed-off-by: Michael Reed <mdr@sgi.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2007-10-12 14:49:04 -04:00
..
aacraid [SCSI] aacraid: rename check_reset 2007-10-12 14:40:07 -04:00
aic7xxx [SCSI] aic7xxx: cap maxsync according to correct card limits 2007-07-31 10:44:26 -05:00
aic7xxx_old
aic94xx [SCSI] aic94xx: Add new PCI ID for ASC58300 2007-10-12 14:46:47 -04:00
arcmsr [SCSI] arcmsr: fix compile problems 2007-10-12 14:48:30 -04:00
arm Remove the arm26 port 2007-07-31 15:39:39 -07:00
dpt [SCSI] dpt: whitespace cleanup 2007-04-01 10:10:04 -05:00
ibmvscsi [SCSI] srp_transport: convert to use supported_mode attribute 2007-10-12 14:47:02 -04:00
libsas [SCSI] libsas: fix build dependencies on libata 2007-07-31 10:40:48 -05:00
lpfc [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
megaraid some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
pcmcia Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-22 11:36:49 -07:00
qla2xxx [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
qla4xxx mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
sym53c8xx_2 [SCSI] sym53c8xx: don't claim cpqarray device 2007-07-24 18:38:46 -04:00
.gitignore
3w-9xxx.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-22 11:36:49 -07:00
3w-9xxx.h [SCSI] 3w-9xxx: add support for 9690SA 2007-07-21 08:57:40 -05:00
3w-xxxx.c [SCSI] 3w-xxxx: convert to use the data buffer accessors 2007-05-30 23:29:32 -05:00
3w-xxxx.h [SCSI] 3ware 8000 serialize reset code 2007-01-06 09:18:00 -06:00
53c700.c [SCSI] 53c700: Remove printk, which triggers because of low scsi clock on SNI RMs 2007-07-14 19:12:43 -05:00
53c700.h [SCSI] 53c700: m68k support for the 53c700 SCSI core 2007-06-17 16:15:56 -05:00
53c700.scr
53c700_d.h_shipped
a100u2w.c [SCSI] a100u2w: Convert into Linux style 2007-06-17 16:09:29 -05:00
a100u2w.h [SCSI] a100u2w: Convert into Linux style 2007-06-17 16:09:29 -05:00
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
a4000t.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
advansys.c [SCSI] advansys: Use DRV_NAME 2007-10-12 14:48:19 -04:00
aha152x.c [SCSI] aha152x: use data accessors and !use_sg cleanup 2007-08-04 09:14:49 -05:00
aha152x.h [SCSI] aha152x: fix debug mode symbol conflict 2007-08-04 09:11:06 -05:00
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] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
atari_dma_emul.c
atari_NCR5380.c [SCSI] atari_NCR5380: update_timeout removal 2007-06-04 09:55:15 -05: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 [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
blz2060.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
BusLogic.c [SCSI] BusLogic: convert to use the data buffer accessors 2007-05-26 19:21:37 -05:00
BusLogic.h [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
bvme6000_scsi.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
ch.c [SCSI] ch: kmalloc/memset->kzalloc 2007-05-06 09:33:11 -05:00
constants.c [SCSI] make scsi_decode_sense_buffer and scsi_decode_sense_extras static 2007-10-12 14:40:25 -04:00
cyberstorm.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
cyberstormII.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
dc395x.c [SCSI] dc395x: convert to use the data buffer accessors 2007-07-15 10:04:49 -05:00
dc395x.h
dec_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
dmx3191d.c
dpt_i2o.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
dpti.h [SCSI] dpt_i2o: convert to SCSI hotplug model 2007-07-31 10:49:58 -05:00
dtc.c [SCSI] dtc: clean up indent damage and add printk levels 2007-10-12 14:40:29 -04:00
dtc.h
eata.c [SCSI] eata: convert to use the data buffer accessors 2007-05-26 19:13:55 -05:00
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
esp_scsi.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
esp_scsi.h [SCSI] ESP: Revert ESP_BUS_TIMEOUT back down to 250 2007-07-31 10:51:25 -05:00
fastlane.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
fcal.c
fcal.h
fd_mcs.c [SCSI] minor bug fixes and cleanups 2006-11-15 16:41:27 -06:00
fdomain.c [SCSI] fdomain: fix PCMCIA-related warnings 2007-05-27 12:59:28 -05:00
fdomain.h
FlashPoint.c [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
g_NCR5380.c [SCSI] NCR5380: fix NCR53C400_PSEUDO_DMA is not defined 2007-10-12 14:40:22 -04:00
g_NCR5380.h
g_NCR5380_mmio.c
gdth.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
gdth.h [SCSI] gdth: remove redundant PCI stuff 2007-07-31 10:36:30 -05:00
gdth_ioctl.h
gdth_kcompat.h
gdth_proc.c
gdth_proc.h
gvp11.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
gvp11.h
hosts.c [SCSI] add supported_mode and active_mode attributes to the host 2007-10-12 14:46:55 -04:00
hptiop.c [SCSI] hptiop: adding new firmware interface and more PCI device IDs 2007-10-12 14:46:40 -04:00
hptiop.h [SCSI] hptiop: adding new firmware interface and more PCI device IDs 2007-10-12 14:46:40 -04:00
ibmmca.c [SCSI] ibmmca: convert to use the data buffer accessors 2007-05-26 16:30:17 -05:00
ide-scsi.c drivers/scsi/ide-scsi.c: kmalloc + memset conversion to kzalloc 2007-08-01 23:46:45 +02:00
imm.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
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 Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07: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: warning fix 2007-10-12 14:40:14 -04:00
ips.h [SCSI] ips: remove kernel 2.4 code 2007-05-24 09:14:41 -05:00
iscsi_tcp.c [SCSI] iscsi_tcp: Turn off bounce buffers 2007-07-27 09:12:54 -04:00
iscsi_tcp.h [SCSI] iscsi_tcp: fix handling of data buffer padding 2007-06-02 15:35:10 -04:00
jazz_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
Kconfig [SCSI] arcmsr: 1.20.00.15: add SATA RAID plus other fixes 2007-10-12 14:48:27 -04:00
lasi700.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
libiscsi.c [SCSI] libiscsi: fix cmd seqeunce number checking 2007-07-27 09:12:05 -04:00
libsrp.c [SCSI] tgt: convert libsrp and ibmvstgt to use srp_transport 2007-10-12 14:37:57 -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 [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
mac_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mac_scsi.h
Makefile [SCSI] add srp transport class 2007-10-12 14:37:35 -04:00
mca_53c9x.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
megaraid.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
megaraid.h [SCSI] megaraid: fix warnings when CONFIG_PROC_FS=n 2007-05-08 11:15:08 -05:00
mesh.c [SCSI] mesh: convert to use the data buffer accessors 2007-06-07 08:49:10 -05:00
mesh.h
mvme16x_scsi.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
mvme147.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mvme147.h
ncr53c8xx.c [SCSI] ncr53c8xx: convert to use the data buffer accessors 2007-07-15 10:03:03 -05:00
ncr53c8xx.h Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
NCR53C9x.c m68k: missing exports 2007-07-20 08:24:49 -07:00
NCR53C9x.h [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
NCR53c406a.c [SCSI] NCR53c406a: convert to use the data buffer accessors 2007-05-26 19:08:20 -05:00
NCR5380.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
NCR5380.h [SCSI] ncr5380 warning fixes 2007-05-24 09:13:25 -05:00
NCR_D700.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
NCR_D700.h
NCR_Q720.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
NCR_Q720.h
nsp32.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
nsp32.h
nsp32_debug.c
nsp32_io.h
oktagon_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
oktagon_io.S
osst.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
osst.h [PATCH] osst endianness annotations 2007-02-09 09:14:07 -08:00
osst_detect.h
osst_options.h
pas16.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
pas16.h
pluto.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00
pluto.h
ppa.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
ppa.h
ps3rom.c [SCSI] ps3rom: convert to use the data buffer accessors 2007-10-12 14:38:13 -04:00
psi240i.c [SCSI] psi240i.c: fix an array overrun 2006-11-10 10:01:42 +09:00
psi240i.h [SCSI] Scsi_Cmnd conversion in psi240i driver 2006-10-25 15:12:38 -07:00
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
qlogicfas.c
qlogicfas408.c [SCSI] qlogicfas408: convert to use the data buffer accessors 2007-05-26 19:21:09 -05:00
qlogicfas408.h [SCSI] Scsi_Cmnd conversion in qlogicfas408 driver 2006-10-25 15:11:55 -07:00
qlogicpti.c [SCSI] qlogicpti: Some cosmetic changes 2007-08-02 09:02:42 -05:00
qlogicpti.h
qlogicpti_asm.c [SPARC]: Fix some section mismatch warnings in sparc drivers. 2006-10-17 19:28:51 -07:00
raid_class.c
script_asm.pl
scsi.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
scsi.h
scsi_debug.c [SCSI] Make scsi_host_template::proc_name const char * instead of char *. 2007-07-19 12:06:26 -05:00
scsi_debug.h
scsi_devinfo.c [SCSI] Add QUANTUM XP34301 to the blacklist 2007-10-12 14:39:19 -04:00
scsi_error.c [SCSI] scsi_error.c should #include "scsi_transport_api.h" 2007-10-12 14:40:18 -04:00
scsi_ioctl.c
scsi_lib.c [SCSI] stale residual returned on write following BUSY retry 2007-10-12 14:49:04 -04:00
scsi_lib_dma.c [SCSI] don't build scsi_dma_{map,unmap} for !HAS_DMA 2007-07-14 19:28:10 -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] scsi_error.c: Export some scsi_eh_* functions 2007-01-27 10:06:34 -06:00
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 async scanning double-add problems 2007-10-12 14:38:24 -04:00
scsi_sysctl.c [SCSI] small cleanups 2007-07-18 11:16:32 -05:00
scsi_sysfs.c [SCSI] switch sdev sysfs attributes to default attributes 2007-10-12 14:48:22 -04:00
scsi_tgt_if.c [SCSI] tgt: add I_T nexus support 2007-10-12 14:37:50 -04:00
scsi_tgt_lib.c [SCSI] tgt: fix can_queue bug 2007-10-12 14:46:51 -04:00
scsi_tgt_priv.h [SCSI] tgt: add I_T nexus support 2007-10-12 14:37:50 -04:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] fc_transport: add target driver support 2007-10-12 14:46:58 -04:00
scsi_transport_fc_internal.h [SCSI] fc_transport: add target driver support 2007-10-12 14:46:58 -04:00
scsi_transport_iscsi.c [SCSI] iscsi class, iscsi_tcp, iser, qla4xxx: add netdevname sysfs attr 2007-06-02 15:38:04 -04:00
scsi_transport_sas.c [SCSI] bsg: make class backlinks 2007-07-21 08:58:23 -05:00
scsi_transport_spi.c [SCSI] spi transport class: export spi_dv_pending 2007-02-02 20:44:25 -06:00
scsi_transport_srp.c [SCSI] srp_transport: convert to use supported_mode attribute 2007-10-12 14:47:02 -04:00
scsi_transport_srp_internal.h [SCSI] scsi_transport_srp: remove tgt dependencies 2007-10-12 14:38:09 -04:00
scsi_typedefs.h
scsi_wait_scan.c [SCSI] Add ability to scan scsi busses asynchronously 2006-10-11 13:44:25 -05:00
scsicam.c
sd.c [SCSI] sd: disentangle barriers in SCSI 2007-08-04 08:37:04 -05:00
seagate.c [SCSI] seagate: make seagate_st0x_detect() static 2007-07-18 11:16:46 -05:00
sg.c [SCSI] sg: increase sglist_len of the sg_scatter_hold structure 2007-10-12 14:38:28 -04:00
sgiwd93.c Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sim710.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-22 11:36:49 -07:00
sni_53c710.c [SCSI] sni_53c710: Cleanup 2007-07-14 19:12:15 -05:00
sr.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
sr.h
sr_ioctl.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sr_vendor.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
st.c [SCSI] st: Use mutex instead of semaphore 2007-07-31 10:44:01 -05:00
st.h [SCSI] st: Use mutex instead of semaphore 2007-07-31 10:44:01 -05:00
st_options.h
stex.c [SCSI] stex: use resid for xfer len information 2007-07-14 18:59:10 -05:00
sun3_NCR5380.c [PATCH] m68k trivial build fixes 2006-12-17 10:21:53 -08:00
sun3_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.h [PATCH] Sun3 SCSI: Make sun3 scsi drivers compile/work again 2006-12-09 09:41:18 -08:00
sun3_scsi_vme.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3x_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
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 [SCSI] scsi: t128 scsi_cmnd convertion 2006-11-15 16:43:50 -06:00
tmscsim.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
tmscsim.h [SCSI] tmscsim: Further clean-up of the driver 2007-07-14 18:56:33 -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: cleanups 2007-07-18 11:16:38 -05: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
zorro7xx.c [SCSI] kmalloc + memset conversion to kzalloc 2007-10-12 14:41:00 -04:00