libata: no special completion processing for EH commands
commit55b564d3f2e4e46273ca546d377cf1ffd253c584
authorTejun Heo <tj@kernel.org>
Thu, 9 Dec 2010 14:59:32 +0000 (9 15:59 +0100)
committerWilly Tarreau <w@1wt.eu>
Sat, 30 Apr 2011 14:53:14 +0000 (30 16:53 +0200)
tree62372ce8148e0e05d0adccf41419117f2fa072b3
parent395f0b7ce1e83a3d9497c73fd71004611a77a03e
libata: no special completion processing for EH commands

commit f08dc1ac6b15c681f4643d8da1700e06c3855608 upstream.

ata_qc_complete() contains special handling for certain commands.  For
example, it schedules EH for device revalidation after certain
configurations are changed.  These shouldn't be applied to EH
commands but they were.

In most cases, it doesn't cause an actual problem because EH doesn't
issue any command which would trigger special handling; however, ACPI
can issue such commands via _GTF which can cause weird interactions.

Restructure ata_qc_complete() such that EH commands are always passed
on to __ata_qc_complete().

stable: Please apply to -stable only after 2.6.38 is released.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Kyle McMartin <kyle@mcmartin.ca>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/ata/libata-core.c