aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_sil24.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-10-26 03:12:41 -0400
committerJeff Garzik <jeff@garzik.org>2007-10-30 09:59:42 -0400
commitf90f0828e57e97cb1ff19520d252882cfc6fb3c0 (patch)
tree14e67383982020fa1eba40af22d202e5ec04a77b /drivers/ata/sata_sil24.c
parentb666da35d900c26cbea1caa465649e2e0afa406c (diff)
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>
Diffstat (limited to 'drivers/ata/sata_sil24.c')
-rw-r--r--drivers/ata/sata_sil24.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index 3c481e0e0c03..187dcb02c681 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -265,11 +265,11 @@ static struct sil24_cerr_info {
265 unsigned int err_mask, action; 265 unsigned int err_mask, action;
266 const char *desc; 266 const char *desc;
267} sil24_cerr_db[] = { 267} sil24_cerr_db[] = {
268 [0] = { AC_ERR_DEV, ATA_EH_REVALIDATE, 268 [0] = { AC_ERR_DEV, 0,
269 "device error" }, 269 "device error" },
270 [PORT_CERR_DEV] = { AC_ERR_DEV, ATA_EH_REVALIDATE, 270 [PORT_CERR_DEV] = { AC_ERR_DEV, 0,
271 "device error via D2H FIS" }, 271 "device error via D2H FIS" },
272 [PORT_CERR_SDB] = { AC_ERR_DEV, ATA_EH_REVALIDATE, 272 [PORT_CERR_SDB] = { AC_ERR_DEV, 0,
273 "device error via SDB FIS" }, 273 "device error via SDB FIS" },
274 [PORT_CERR_DATA] = { AC_ERR_ATA_BUS, ATA_EH_SOFTRESET, 274 [PORT_CERR_DATA] = { AC_ERR_ATA_BUS, ATA_EH_SOFTRESET,
275 "error in data FIS" }, 275 "error in data FIS" },