aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-eh.c7
-rw-r--r--include/linux/libata.h1
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 96b184ebf708..19f9947bd96b 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -1195,7 +1195,7 @@ static void ata_eh_analyze_ncq_error(struct ata_port *ap)
1195 /* we've got the perpetrator, condemn it */ 1195 /* we've got the perpetrator, condemn it */
1196 qc = __ata_qc_from_tag(ap, tag); 1196 qc = __ata_qc_from_tag(ap, tag);
1197 memcpy(&qc->result_tf, &tf, sizeof(tf)); 1197 memcpy(&qc->result_tf, &tf, sizeof(tf));
1198 qc->err_mask |= AC_ERR_DEV; 1198 qc->err_mask |= AC_ERR_DEV | AC_ERR_NCQ;
1199 ehc->i.err_mask &= ~AC_ERR_DEV; 1199 ehc->i.err_mask &= ~AC_ERR_DEV;
1200} 1200}
1201 1201
@@ -1616,7 +1616,7 @@ static void ata_eh_report(struct ata_port *ap)
1616 "cmd %02x/%02x:%02x:%02x:%02x:%02x/%02x:%02x:%02x:%02x:%02x/%02x " 1616 "cmd %02x/%02x:%02x:%02x:%02x:%02x/%02x:%02x:%02x:%02x:%02x/%02x "
1617 "tag %d cdb 0x%x data %u %s\n " 1617 "tag %d cdb 0x%x data %u %s\n "
1618 "res %02x/%02x:%02x:%02x:%02x:%02x/%02x:%02x:%02x:%02x:%02x/%02x " 1618 "res %02x/%02x:%02x:%02x:%02x:%02x/%02x:%02x:%02x:%02x:%02x/%02x "
1619 "Emask 0x%x (%s)\n", 1619 "Emask 0x%x (%s)%s\n",
1620 cmd->command, cmd->feature, cmd->nsect, 1620 cmd->command, cmd->feature, cmd->nsect,
1621 cmd->lbal, cmd->lbam, cmd->lbah, 1621 cmd->lbal, cmd->lbam, cmd->lbah,
1622 cmd->hob_feature, cmd->hob_nsect, 1622 cmd->hob_feature, cmd->hob_nsect,
@@ -1627,7 +1627,8 @@ static void ata_eh_report(struct ata_port *ap)
1627 res->lbal, res->lbam, res->lbah, 1627 res->lbal, res->lbam, res->lbah,
1628 res->hob_feature, res->hob_nsect, 1628 res->hob_feature, res->hob_nsect,
1629 res->hob_lbal, res->hob_lbam, res->hob_lbah, 1629 res->hob_lbal, res->hob_lbam, res->hob_lbah,
1630 res->device, qc->err_mask, ata_err_string(qc->err_mask)); 1630 res->device, qc->err_mask, ata_err_string(qc->err_mask),
1631 qc->err_mask & AC_ERR_NCQ ? " <F>" : "");
1631 } 1632 }
1632} 1633}
1633 1634
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 94b37d180680..cb181713d9b5 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -323,6 +323,7 @@ enum ata_completion_errors {
323 AC_ERR_INVALID = (1 << 7), /* invalid argument */ 323 AC_ERR_INVALID = (1 << 7), /* invalid argument */
324 AC_ERR_OTHER = (1 << 8), /* unknown */ 324 AC_ERR_OTHER = (1 << 8), /* unknown */
325 AC_ERR_NODEV_HINT = (1 << 9), /* polling device detection hint */ 325 AC_ERR_NODEV_HINT = (1 << 9), /* polling device detection hint */
326 AC_ERR_NCQ = (1 << 10), /* marker for offending NCQ qc */
326}; 327};
327 328
328/* forward declarations */ 329/* forward declarations */