kernel_optimize_test/drivers/ata
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_platform.c
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
ata_generic.c
ata_piix.c ata_piix: IDE-mode SATA patch for Intel Panther Point DeviceIDs 2011-04-24 11:34:05 -04:00
Kconfig
libahci.c Revert "libata: ahci_start_engine compliant to AHCI spec" 2011-05-14 10:45:59 -07:00
libata-acpi.c
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
libata-transport.h
libata.h
Makefile
pata_acpi.c
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_at32.c
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_cs5520.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c
pata_cypress.c
pata_efar.c
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c
pata_isapnp.c
pata_it821x.c
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_macio.c
pata_marvell.c
pata_mpc52xx.c
pata_mpiix.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pata_netcell.c
pata_ninja32.c
pata_ns87410.c
pata_ns87415.c
pata_octeon_cf.c
pata_of_platform.c
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_pdc2027x.c
pata_piccolo.c
pata_platform.c
pata_pxa.c
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
pata_sc1200.c
pata_scc.c
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_triflex.c ATA: Don't powerdown Compaq Triflex IDE device on suspend 2011-05-19 20:46:40 -04:00
pata_via.c
pdc_adma.c
sata_dwc_460ex.c
sata_fsl.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sata_inic162x.c
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
sata_promise.h
sata_qstor.c
sata_sil24.c
sata_sil.c
sata_sis.c
sata_svw.c
sata_sx4.c
sata_uli.c
sata_via.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sata_vsc.c
sis.h