|
@@ -715,19 +715,20 @@ static int nv_adma_check_cpb(struct ata_port *ap, int cpb_num, int force_err)
|
|
int freeze = 0;
|
|
int freeze = 0;
|
|
|
|
|
|
ata_ehi_clear_desc(ehi);
|
|
ata_ehi_clear_desc(ehi);
|
|
- ata_ehi_push_desc(ehi, "CPB resp_flags 0x%x", flags );
|
|
|
|
|
|
+ __ata_ehi_push_desc(ehi, "CPB resp_flags 0x%x: ", flags );
|
|
if (flags & NV_CPB_RESP_ATA_ERR) {
|
|
if (flags & NV_CPB_RESP_ATA_ERR) {
|
|
- ata_ehi_push_desc(ehi, ": ATA error");
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "ATA error");
|
|
ehi->err_mask |= AC_ERR_DEV;
|
|
ehi->err_mask |= AC_ERR_DEV;
|
|
} else if (flags & NV_CPB_RESP_CMD_ERR) {
|
|
} else if (flags & NV_CPB_RESP_CMD_ERR) {
|
|
- ata_ehi_push_desc(ehi, ": CMD error");
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "CMD error");
|
|
ehi->err_mask |= AC_ERR_DEV;
|
|
ehi->err_mask |= AC_ERR_DEV;
|
|
} else if (flags & NV_CPB_RESP_CPB_ERR) {
|
|
} else if (flags & NV_CPB_RESP_CPB_ERR) {
|
|
- ata_ehi_push_desc(ehi, ": CPB error");
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "CPB error");
|
|
ehi->err_mask |= AC_ERR_SYSTEM;
|
|
ehi->err_mask |= AC_ERR_SYSTEM;
|
|
freeze = 1;
|
|
freeze = 1;
|
|
} else {
|
|
} else {
|
|
/* notifier error, but no error in CPB flags? */
|
|
/* notifier error, but no error in CPB flags? */
|
|
|
|
+ ata_ehi_push_desc(ehi, "unknown");
|
|
ehi->err_mask |= AC_ERR_OTHER;
|
|
ehi->err_mask |= AC_ERR_OTHER;
|
|
freeze = 1;
|
|
freeze = 1;
|
|
}
|
|
}
|
|
@@ -854,20 +855,21 @@ static irqreturn_t nv_adma_interrupt(int irq, void *dev_instance)
|
|
struct ata_eh_info *ehi = &ap->eh_info;
|
|
struct ata_eh_info *ehi = &ap->eh_info;
|
|
|
|
|
|
ata_ehi_clear_desc(ehi);
|
|
ata_ehi_clear_desc(ehi);
|
|
- ata_ehi_push_desc(ehi, "ADMA status 0x%08x", status );
|
|
|
|
|
|
+ __ata_ehi_push_desc(ehi, "ADMA status 0x%08x: ", status );
|
|
if (status & NV_ADMA_STAT_TIMEOUT) {
|
|
if (status & NV_ADMA_STAT_TIMEOUT) {
|
|
ehi->err_mask |= AC_ERR_SYSTEM;
|
|
ehi->err_mask |= AC_ERR_SYSTEM;
|
|
- ata_ehi_push_desc(ehi, ": timeout");
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "timeout");
|
|
} else if (status & NV_ADMA_STAT_HOTPLUG) {
|
|
} else if (status & NV_ADMA_STAT_HOTPLUG) {
|
|
ata_ehi_hotplugged(ehi);
|
|
ata_ehi_hotplugged(ehi);
|
|
- ata_ehi_push_desc(ehi, ": hotplug");
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "hotplug");
|
|
} else if (status & NV_ADMA_STAT_HOTUNPLUG) {
|
|
} else if (status & NV_ADMA_STAT_HOTUNPLUG) {
|
|
ata_ehi_hotplugged(ehi);
|
|
ata_ehi_hotplugged(ehi);
|
|
- ata_ehi_push_desc(ehi, ": hot unplug");
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "hot unplug");
|
|
} else if (status & NV_ADMA_STAT_SERROR) {
|
|
} else if (status & NV_ADMA_STAT_SERROR) {
|
|
/* let libata analyze SError and figure out the cause */
|
|
/* let libata analyze SError and figure out the cause */
|
|
- ata_ehi_push_desc(ehi, ": SError");
|
|
|
|
- }
|
|
|
|
|
|
+ ata_ehi_push_desc(ehi, "SError");
|
|
|
|
+ } else
|
|
|
|
+ ata_ehi_push_desc(ehi, "unknown");
|
|
ata_port_freeze(ap);
|
|
ata_port_freeze(ap);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|