From 3396d3a03cc84b1377197a8d09dab5663f12e320 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Tue, 16 May 2006 12:58:24 +0900 Subject: [PATCH] --- yaml --- r: 29450 b: refs/heads/master c: a20f33ffde8ba5fb27666aa1e228a45b7e3b8dcb h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/libata-eh.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index ea72a1c2875a..fc4c2b1a0f05 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eec4c3f317991dc85c786ffccd9c1a8620c41b18 +refs/heads/master: a20f33ffde8ba5fb27666aa1e228a45b7e3b8dcb diff --git a/trunk/drivers/scsi/libata-eh.c b/trunk/drivers/scsi/libata-eh.c index 7244caff13a0..750e734d1c09 100644 --- a/trunk/drivers/scsi/libata-eh.c +++ b/trunk/drivers/scsi/libata-eh.c @@ -1169,9 +1169,6 @@ static void ata_eh_autopsy(struct ata_port *ap) /* inherit upper level err_mask */ qc->err_mask |= ehc->i.err_mask; - if (qc->err_mask & AC_ERR_TIMEOUT) - action |= ATA_EH_SOFTRESET; - /* analyze TF */ action |= ata_eh_analyze_tf(qc, &qc->result_tf); @@ -1201,9 +1198,14 @@ static void ata_eh_autopsy(struct ata_port *ap) if (failed_dev) action |= ata_eh_speed_down(failed_dev, is_io, all_err_mask); - if (all_err_mask) + /* enforce default EH actions */ + if (ap->flags & ATA_FLAG_FROZEN || + all_err_mask & (AC_ERR_HSM | AC_ERR_TIMEOUT)) + action |= ATA_EH_SOFTRESET; + else if (all_err_mask) action |= ATA_EH_REVALIDATE; + /* record autopsy result */ ehc->i.dev = failed_dev; ehc->i.action = action;