android_kernel_xiaomi_sm8350/drivers
Alan Stern e47373ec1c [SCSI] return success after retries in scsi_eh_tur
The problem lies in the way the error handler uses TEST UNIT READY to
tell whether error recovery has succeeded.  The scsi_eh_tur function
gives up after one round of retrying; after that it decides that more
error recovery is needed.

However TUR is liable to report sense data indicating a retry is needed
when in fact error recovery has succeeded.  A typical example might be
SK=2, ASC=4, ASCQ=1 (Logical unit in process of becoming ready).  The mere
fact that we were able to get a sensible reply to the TUR should indicate
that the device is working well enough to stop error recovery.

I ran across a case back in January where this happened.  A CD-ROM drive
timed out the INQUIRY command, and a device reset fixed the blockage.
But then the drive kept responding with 2/4/1 -- because it was spinning
up I suppose -- until the error handler gave up and placed it offline.
If the initial INQUIRY had received the 2/4/1 instead, everything would
have worked okay.  It doesn't seem reasonable for things to fail just
because the error handler had started running.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-09-06 17:19:23 -05:00
..
acorn [PATCH] I2C: Kill address ranges in non-sensors i2c chip drivers 2005-06-21 21:51:48 -07:00
acpi [PATCH] acpi: Don't call acpi_sleep_prepare from acpi_power_off 2005-07-26 14:35:45 -07:00
atm [ATM]: zatm: mailbox converted to pci_alloc_consistent() 2005-07-20 12:01:46 -07:00
base [SCSI] attribute container final klist fixes 2005-08-30 22:44:32 -05:00
block [PATCH] cciss per disk queue 2005-07-28 08:39:01 -07:00
bluetooth [NET]: Transform skb_queue_len() binary tests into skb_queue_empty() 2005-07-08 14:57:23 -07:00
cdrom [PATCH] Update CREDITS entry and listings in source files for Jesper Juhl 2005-07-27 16:26:20 -07:00
char [PATCH] agp: restore APBASE after setting APSIZE 2005-07-29 15:01:15 -07:00
cpufreq Here are two possible cleanups in cpufreq.c: 2005-07-28 09:43:56 -07:00
crypto [CRYPTO] Update IV correctly for Padlock CBC encryption 2005-07-06 13:54:09 -07:00
dio [PATCH] Driver Core: drivers/base - drivers/i2c/chips/adm1026.c: update device attribute callbacks 2005-06-20 15:15:32 -07:00
eisa [PATCH] Driver Core: drivers/base - drivers/i2c/chips/adm1026.c: update device attribute callbacks 2005-06-20 15:15:32 -07:00
fc4 [SCSI] ifdef out broken fc4 EH code 2005-07-02 19:12:10 -05:00
firmware [PATCH] PCDP: if PCDP contains parity information, use it 2005-07-28 08:39:02 -07:00
hwmon [PATCH] I2C: use time_after in 3 chip drivers 2005-07-29 13:12:50 -07:00
i2c [PATCH] I2C: 24RF08 corruption prevention (again) 2005-07-29 13:12:51 -07:00
ide [PATCH] pcmcia: fix many device IDs 2005-07-28 08:39:00 -07:00
ieee1394 [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
infiniband [IB/ucm]: Clean up userspace CM 2005-07-27 20:38:56 -07:00
input Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2005-07-29 09:48:34 -07:00
isdn [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
macintosh [PATCH] ppc64: hide CONFIG_ADB 2005-07-27 16:25:57 -07:00
mca [PATCH] unexport mca_find_device_by_slot 2005-06-25 16:24:56 -07:00
md [PATCH] device-mapper: fix md->lock deadlocks in core 2005-07-28 21:46:03 -07:00
media [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
message [SCSI] fusion: whitespace fixes 2005-09-04 19:51:45 -05:00
misc [PATCH] IBM_ASM Kconfig corrections 2005-07-12 16:01:02 -07:00
mmc [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
mtd [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
net [PATCH] e1000: no need for reboot notifier 2005-07-28 08:39:02 -07:00
nubus
oprofile [PATCH] clean up inline static vs static inline 2005-07-27 16:26:20 -07:00
parisc [PATCH] acpi bridge hotadd: ACPI based root bridge hot-add 2005-06-27 21:52:39 -07:00
parport [PATCH] pcmcia: remove references to pcmcia/version.h 2005-07-07 18:24:07 -07:00
pci [PATCH] PCI: remove PCI_BRIDGE_CTL_VGA handling from setup-bus.c 2005-07-29 13:12:51 -07:00
pcmcia [PATCH] pcmcia: disable read prefetch/write burst on old O2Micro bridges 2005-07-28 08:39:01 -07:00
pnp [PATCH] drivers/pnp/pnpbios/rsparser.c: fix compile error with PCI=n 2005-07-27 16:25:50 -07:00
s390 [PATCH] s390: device recognition 2005-07-29 15:01:14 -07:00
sbus [SPARC]: Fix __KERNEL_SYSCALLS__ defining in envctrl.c and bbc_envctrl.c 2005-07-24 19:35:08 -07:00
scsi [SCSI] return success after retries in scsi_eh_tur 2005-09-06 17:19:23 -05:00
serial [PATCH] serial: add MMIO support to 8250_pnp 2005-07-29 15:01:13 -07:00
sh [PATCH] Driver Core: drivers/s390/net/qeth_sys.c - drivers/usb/gadget/pxa2xx_udc.c: update device attribute callbacks 2005-06-20 15:15:35 -07:00
sn [PATCH] ioc4: PCI bus speed detection 2005-06-21 18:46:32 -07:00
tc
telephony [PATCH] pcmcia: remove references to pcmcia/version.h 2005-07-07 18:24:07 -07:00
usb [PATCH] USB: hidinput_hid_event() oops fix 2005-07-29 13:12:54 -07:00
video [PATCH] fbdev: Replace memcpy with for-loop when preparing bitmap 2005-07-29 15:01:14 -07:00
w1 [PATCH] w1: kconfig/Makefile fix. 2005-07-29 13:12:51 -07:00
zorro [PATCH] Driver Core: drivers/usb/input/aiptek.c - drivers/zorro/zorro-sysfs.c: update device attribute callbacks 2005-06-20 15:15:35 -07:00
Kconfig Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6 2005-07-12 15:54:36 -07:00
Makefile [PATCH] I2C: Move hwmon drivers (1/3) 2005-07-11 14:14:31 -07:00