From 27f5fa97236372d71e6ee25bb5fb0aa49b1e2c16 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Mon, 16 Jul 2007 14:29:41 +0900 Subject: [PATCH] --- yaml --- r: 62017 b: refs/heads/master c: 4e57c517b3cbaceb7438eeec879ca129fc17442c h: refs/heads/master i: 62015: e543fb08be48a478357a312b3345465cb14ada62 v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-eh.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ccf04ee1fb55..4a6c19559412 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fccb6ea5c240b9f29baa55448488fd6aee49f5a5 +refs/heads/master: 4e57c517b3cbaceb7438eeec879ca129fc17442c diff --git a/trunk/drivers/ata/libata-eh.c b/trunk/drivers/ata/libata-eh.c index a5a8f8453061..e7e2ba24ce66 100644 --- a/trunk/drivers/ata/libata-eh.c +++ b/trunk/drivers/ata/libata-eh.c @@ -1478,8 +1478,12 @@ static void ata_eh_autopsy(struct ata_port *ap) if (rc == 0) { ehc->i.serror |= serror; ata_eh_analyze_serror(ap); - } else if (rc != -EOPNOTSUPP) + } else if (rc != -EOPNOTSUPP) { + /* SError read failed, force hardreset and probing */ + ata_ehi_schedule_probe(&ehc->i); ehc->i.action |= ATA_EH_HARDRESET; + ehc->i.err_mask |= AC_ERR_OTHER; + } /* analyze NCQ failure */ ata_eh_analyze_ncq_error(ap);