diff options
-rw-r--r-- | drivers/ata/libata-eh.c | 7 | ||||
-rw-r--r-- | include/linux/libata.h | 1 |
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 */ |