libata: no special completion processing for EH commands
authorTejun Heo <tj@kernel.org>
Thu, 9 Dec 2010 14:59:32 +0000 (15:59 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 24 Dec 2010 18:34:18 +0000 (13:34 -0500)
commitf08dc1ac6b15c681f4643d8da1700e06c3855608
tree90d3a9d9e68edc07116be3f03795044a83c71c58
parent869934adfc8391ec2e198ed81260e1a42cd9c575
libata: no special completion processing for EH commands

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>
Cc: stable@kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-core.c