libata-eh: clear UNIT ATTENTION after reset
authorTejun Heo <htejun@gmail.com>
Sat, 30 Aug 2008 12:20:01 +0000 (14:20 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Mon, 29 Sep 2008 04:29:06 +0000 (00:29 -0400)
commit11fc33da8d8413d6bfa5143f454dfcb998c27617
treefb43a4954244cbbd84cb560dd1376d35ad90df84
parentd09addf65cb5b3b19a536aa3329efeedbc6bb56c
libata-eh: clear UNIT ATTENTION after reset

Resets make ATAPI devices raise UNIT ATTENTION which fails the next
command.  As resets can happen asynchronously for unrelated reasons,
this sometimes disrupts innocent users.  For example, reading DVD
fails after the system wakes up from suspend or the other device
sharing the channel went through bus error.

Clearing UA has some problems as it might clear UA which the userland
needs to know about.  However, UA after resets can only be about the
reset itself and benefits of clearing it overweights cons.  Missing UA
can only delay failure to one of the following commands anyway.  For
example, timeout while burning is in progress will trigger reset and
reset the device state and probably corrupt the burning run.  Although
the userland application won't get the UA, its pending writes will
fail.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-eh.c