libata: stop being overjealous about non-IO commands
authorTejun Heo <htejun@gmail.com>
Fri, 26 Oct 2007 07:12:41 +0000 (16:12 +0900)
committerJeff Garzik <jeff@garzik.org>
Tue, 30 Oct 2007 13:59:42 +0000 (09:59 -0400)
commitf90f0828e57e97cb1ff19520d252882cfc6fb3c0
tree14e67383982020fa1eba40af22d202e5ec04a77b
parentb666da35d900c26cbea1caa465649e2e0afa406c
libata: stop being overjealous about non-IO commands

libata EH always revalidated device and retried failed command after
error except for ATAPI CCs.  This is unnecessary and hinders with
users issuing direct commands.  This patch makes the following
changes.

* Make sata_sil24 not request ATA_EH_REVALIDATE on device errors.
  sil24 is the only driver which does this.  All others let libata EH
  core code decide.

* Don't request revalidation after device error of non-IO command.
  Revalidation doesn't really help anybody.  As ATA_EH_REVALIDATE
  isn't set by default, there's no reason to clear it after sense data
  is read.  Kill ATA_EH_REVALIDATE clearing code while at it.

* Don't retry non-IO command after device error.  Device has rejected
  the command.  There's no point in retrying.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-eh.c
drivers/ata/sata_sil24.c