libata: always do follow-up SRST if hardreset returned -EAGAIN
authorTejun Heo <tj@kernel.org>
Thu, 31 Jul 2008 07:08:02 +0000 (16:08 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 22 Aug 2008 06:19:41 +0000 (02:19 -0400)
As an optimization, follow-up SRST used to be skipped if
classification wasn't requested even when hardreset requested it via
-EAGAIN.  However, some hardresets can't wait for device readiness and
skipping SRST can cause timeout or other failures during revalidation.
Always perform follow-up SRST if hardreset returns -EAGAIN.  This
makes reset paths more predictable and thus less error-prone.

While at it, move hardreset error checking such that it's done right
after hardreset is finished.  This simplifies followup SRST condition
check a bit and makes the reset path easier to modify.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

No differences found