Tejun Heo
8c56cacc72
libata: fix unexpectedly frozen port after ata_eh_reset()
...
To work around controllers which can't properly plug events while
reset, ata_eh_reset() clears error states and ATA_PFLAG_EH_PENDING
after reset but before RESET is marked done. As reset is the final
recovery action and full verification of devices including onlineness
and classfication match is done afterwards, this shouldn't lead to
lost devices or missed hotplug events.
Unfortunately, it forgot to thaw the port when clearing EH_PENDING, so
if the condition happens after resetting an empty port, the port could
be left frozen and EH will end without thawing it, making the port
unresponsive to further hotplug events.
Thaw if the port is frozen after clearing EH_PENDING. This problem is
reported by Bruce Stenning in the following thread.
http://thread.gmane.org/gmane.linux.kernel/1123265
stable: I think we should weather this patch a bit longer in -rcX
before sending it to -stable. Please wait at least a month
after this patch makes upstream. Thanks.
-v2: Fixed spelling in the comment per Dave Howorth.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Bruce Stenning <b.stenning@indigovision.com>
Cc: stable@kernel.org
Cc: Dave Howorth <dhoworth@mrc-lmb.cam.ac.uk>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2011-06-07 15:55:55 -04:00
..
acard-ahci.c
drivers/ata/acard-ahci.c: fix enum warning
2011-05-19 20:45:15 -04:00
ahci.c
ahci: AHCI-mode SATA patch for Intel Panther Point DeviceIDs
2011-04-24 11:34:05 -04:00
ahci.h
ahci: EM supported message type sysfs attribute
2011-04-24 11:31:31 -04:00
ahci_platform.c
libata: reimplement link power management
2010-10-21 20:21:04 -04:00
ata_generic.c
[libata] trivial: trim trailing whitespace for drivers/ata/*.[ch]
2011-03-02 02:36:45 -05:00
ata_piix.c
ata_piix: IDE-mode SATA patch for Intel Panther Point DeviceIDs
2011-04-24 11:34:05 -04:00
Kconfig
pata_arasan_cf: Adding support for arasan compact flash host controller
2011-03-14 02:52:46 -04:00
libahci.c
Revert "libata: ahci_start_engine compliant to AHCI spec"
2011-05-14 10:45:59 -07:00
libata-acpi.c
libata: remove ATA_FLAG_MMIO
2011-03-02 02:36:46 -05:00
libata-core.c
libata: Power off empty ports
2011-05-19 20:50:53 -04:00
libata-eh.c
libata: fix unexpectedly frozen port after ata_eh_reset()
2011-06-07 15:55:55 -04:00
libata-pmp.c
libata-pmp: add support for Thermaltake BlackX Duet esata drive dock
2011-05-19 20:48:59 -04:00
libata-scsi.c
Merge branch 'for-2.6.40/core' of git://git.kernel.dk/linux-2.6-block
2011-05-25 09:14:07 -07:00
libata-sff.c
libata-sff: prevent irq descriptions for dummy ports
2011-05-14 14:59:54 -04:00
libata-transport.c
drivers/ata/libata-transport.c: include linux/slab.h
2010-10-21 20:21:04 -04:00
libata-transport.h
[libata] Add ATA transport class
2010-10-21 20:21:03 -04:00
libata.h
libata: plumb sas port scan into standard libata paths
2011-03-02 02:36:45 -05:00
Makefile
pata_arasan_cf: Adding support for arasan compact flash host controller
2011-03-14 02:52:46 -04:00
pata_acpi.c
libata: remove ATA_FLAG_{SRST|SATA_RESET}
2011-03-02 02:36:46 -05:00
pata_ali.c
pata_amd.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_arasan_cf.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_artop.c
pata_artop: Fix device ID parity check
2010-09-09 14:19:18 -04:00
pata_at32.c
libata: remove ATA_FLAG_MMIO
2011-03-02 02:36:46 -05:00
pata_at91.c
pata_at91: SMC settings calculation bugfixes, support for t6z and IORDY
2011-05-14 15:00:13 -04:00
pata_atiixp.c
pata_atp867x.c
pata_bf54x.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_cmd64x.c
pata_cm64x: fix boot crash on parisc
2011-05-14 14:59:15 -04:00
pata_cmd640.c
pata_cmd640: implement sff_irq_check() method
2010-10-21 20:21:05 -04:00
pata_cs5520.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cs5536: avoid implicit MSR API inclusion on x86-64
2010-12-26 19:42:15 -05:00
pata_cypress.c
pata_efar.c
pata_hpt3x2n.c
ata: pata: Convert pr_*(DRV_NAME ...) to pr_fmt/pr_<level>
2011-03-14 02:56:31 -04:00
pata_hpt3x3.c
[libata] trivial: trim trailing whitespace for drivers/ata/*.[ch]
2011-03-02 02:36:45 -05:00
pata_hpt37x.c
ata: pata: Convert pr_*(DRV_NAME ...) to pr_fmt/pr_<level>
2011-03-14 02:56:31 -04:00
pata_hpt366.c
ata: pata: Convert pr_*(DRV_NAME ...) to pr_fmt/pr_<level>
2011-03-14 02:56:31 -04:00
pata_icside.c
pata_isapnp.c
pata_it821x.c
[libata] trivial: trim trailing whitespace for drivers/ata/*.[ch]
2011-03-02 02:36:45 -05:00
pata_it8213.c
pata_ixp4xx_cf.c
drivers: Final irq namespace conversion
2011-03-29 14:48:19 +02:00
pata_jmicron.c
pata_legacy.c
pata_legacy: fix CONFIG_PATA_WINBOND_VLB_MODULE test
2010-11-12 17:10:53 -05:00
pata_macio.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
pata_marvell.c
[libata] trivial: trim trailing whitespace for drivers/ata/*.[ch]
2011-03-02 02:36:45 -05:00
pata_mpc52xx.c
dt: Eliminate of_platform_{,un}register_driver
2011-02-28 13:22:46 -07:00
pata_mpiix.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_netcell.c
pata_ninja32.c
[libata] trivial: trim trailing whitespace for drivers/ata/*.[ch]
2011-03-02 02:36:45 -05:00
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
pata_of_platform.c
dt: Eliminate of_platform_{,un}register_driver
2011-02-28 13:22:46 -07:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_palmld.c
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel-stable
2011-03-26 10:03:03 +00:00
pata_pcmcia.c
pcmcia: Convert pcmcia_device_id declarations to const
2011-05-06 07:46:22 +02:00
pata_pdc202xx_old.c
pata_pdc202xx_old: implement sff_irq_check() method
2010-10-21 20:21:06 -04:00
pata_pdc2027x.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
pata_piccolo.c
pata_platform.c
pata_pxa.c
libata: remove ATA_FLAG_MMIO
2011-03-02 02:36:46 -05:00
pata_qdi.c
pata_radisys.c
pata_rb532_cf.c
drivers: Final irq namespace conversion
2011-03-29 14:48:19 +02:00
pata_rdc.c
pata_rz1000.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_samsung_cf.c
libata: remove ATA_FLAG_MMIO
2011-03-02 02:36:46 -05:00
pata_sc1200.c
pata_scc.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
pata_sch.c
pata_serverworks.c
pata_sil680.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_sis.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
pata_sl82c105.c
pata_sl82c105: implement sff_irq_check() method
2010-10-21 20:21:06 -04:00
pata_triflex.c
ATA: Don't powerdown Compaq Triflex IDE device on suspend
2011-05-19 20:46:40 -04:00
pata_via.c
libata,pata_via: revert ata_wait_idle() removal from ata_sff/via_tf_load()
2010-09-09 22:27:44 -04:00
pdc_adma.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_dwc_460ex.c
Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6
2011-03-16 17:28:10 -07:00
sata_fsl.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
sata_inic162x.c
libata: add @ap to ata_wait_register() and introduce ata_msleep()
2010-10-21 20:21:05 -04:00
sata_mv.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
sata_nv.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
sata_promise.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_promise.h
sata_qstor.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_sil.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_sil24.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_sis.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_svw.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_sx4.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_uli.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sata_via.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
sata_vsc.c
libata: remove ATA_FLAG_NO_LEGACY
2011-03-02 02:36:46 -05:00
sis.h