linux/drivers/ata
Tejun Heo 87fbc5a060 libata: improve EH internal command timeout handling
ATA_TMOUT_INTERNAL which was 30secs were used for all internal
commands which is way too long when something goes wrong.  This patch
implements command type based stepped timeouts.  Different command
types can use different timeouts and each command type can use
different timeout values after timeouts.

ie. the initial timeout is set to a value which should cover most of
the cases but not too long so that run away cases don't delay things
too much.  After the first try times out, the second try can use
longer timeout and if that one times out too, it can go for full 30sec
timeout.

IDENTIFYs use 5s - 10s - 30s timeout and all other commands use 5s -
10s timeouts.

This patch significantly cuts down the needed time to handle failure
cases while still allowing libata to work with nut job devices through
retries.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2008-07-14 15:59:32 -04:00
..
ahci.c ahci: give another shot at clearing all bits in irq_stat 2008-07-05 13:05:37 -07:00
ata_generic.c pata_atiixp: Don't disable 2008-05-06 11:43:44 -04:00
ata_piix.c ata_piix: add TECRA M4 to broken suspend list 2008-06-18 20:28:17 -04:00
Kconfig LIBATA: Add HAVE_PATA_PLATFORM to select PATA_PLATFORM driver 2008-06-18 20:28:00 -04:00
libata-acpi.c libata-acpi: don't call sleeping function from invalid context 2008-07-11 09:42:03 -04:00
libata-core.c libata: improve EH internal command timeout handling 2008-07-14 15:59:32 -04:00
libata-eh.c libata: improve EH internal command timeout handling 2008-07-14 15:59:32 -04:00
libata-pmp.c libata: improve EH retry delay handling 2008-07-14 15:59:32 -04:00
libata-scsi.c libata: don't check whether to use DMA or not for no data commands 2008-06-18 20:27:49 -04:00
libata-sff.c libata: consistently use msecs for time durations 2008-07-14 15:59:32 -04:00
libata.h libata: improve EH internal command timeout handling 2008-07-14 15:59:32 -04:00
Makefile libata: Add Intel SCH PATA driver 2008-05-06 11:33:58 -04:00
pata_acpi.c pata_atiixp: Don't disable 2008-05-06 11:43:44 -04:00
pata_ali.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_amd.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_artop.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_at32.c avr32/pata: avoid unnecessary memset (updated after comments) 2008-05-19 17:27:40 -04:00
pata_atiixp.c [libata] pata_atiixp: fix PIO timing data misprogramming 2008-04-29 17:39:45 -04:00
pata_bf54x.c libata: consistently use msecs for time durations 2008-07-14 15:59:32 -04:00
pata_cmd64x.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cmd640.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
pata_cs5520.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cs5530.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cs5535.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cs5536.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cypress.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_efar.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt3x2n.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt3x3.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt37x.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt366.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_icside.c libata-sff: Fix oops reported in kerneloops.org for pnp devices with no ctl 2008-06-04 06:40:41 -04:00
pata_isapnp.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_it821x.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
pata_it8213.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_ixp4xx_cf.c ATA/IDE: fix platform driver hotplug/coldplug 2008-04-25 00:45:04 -04:00
pata_jmicron.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_legacy.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_marvell.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_mpc52xx.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
pata_mpiix.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_netcell.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_ninja32.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
pata_ns87410.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_ns87415.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_of_platform.c Rename: linux/pata_platform.h to linux/ata_platform.h 2008-02-06 06:54:17 -05:00
pata_oldpiix.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_opti.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_optidma.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_pcmcia.c pcmcia: add another pata/ide ID 2008-06-20 20:53:34 +02:00
pata_pdc202xx_old.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_pdc2027x.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_platform.c ATA/IDE: fix platform driver hotplug/coldplug 2008-04-25 00:45:04 -04:00
pata_qdi.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_radisys.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_rb532_cf.c libata-sff: Fix oops reported in kerneloops.org for pnp devices with no ctl 2008-06-04 06:40:41 -04:00
pata_rz1000.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_sc1200.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_scc.c libata: consistently use msecs for time durations 2008-07-14 15:59:32 -04:00
pata_sch.c libata: Add Intel SCH PATA driver 2008-05-06 11:33:58 -04:00
pata_serverworks.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_sil680.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_sis.c Added Targa Visionary 1000 IDE adapter to pata_sis.c 2008-07-11 09:38:24 -04:00
pata_sl82c105.c drivers/ata: trim trailing whitespace 2008-05-19 17:56:10 -04:00
pata_triflex.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_via.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_winbond.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pdc_adma.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
sata_fsl.c [libata] sata_fsl: Fix broken driver, add port multiplier (PMP) support 2008-05-30 12:39:44 -04:00
sata_inic162x.c sata_inic162x: update intro comment, up the version and drop EXPERIMENTAL 2008-05-06 11:40:57 -04:00
sata_mv.c sata_mv: safer logic for limit_warnings 2008-07-04 09:07:12 -04:00
sata_nv.c sata_nv: make hardreset return -EAGAIN on success 2008-04-25 00:45:48 -04:00
sata_promise.c sata_promise: other cleanups 2008-05-19 17:31:34 -04:00
sata_promise.h libata annotations and fixes 2008-01-23 05:24:15 -05:00
sata_qstor.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
sata_sil24.c sata_sil24: add DID for another adaptec flavor 2008-07-04 09:05:43 -04:00
sata_sil.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
sata_sis.c sata_sis: SCR accessors return -EINVAL when requested SCR isn't available 2008-04-24 23:42:47 -04:00
sata_svw.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
sata_sx4.c libata: add qc_fill_rtf port operation 2008-04-17 15:44:23 -04:00
sata_uli.c sata_uli: hardreset is broken 2008-06-27 02:57:48 -04:00
sata_via.c libata: restructure SFF post-reset readiness waits 2008-04-17 15:44:22 -04:00
sata_vsc.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
sis.h libata: PATA-mode fixes for sis_sata 2007-07-02 10:17:42 -04:00