svn commit: r198390 - head/sys/dev/ahci
Alexander Motin
mav at FreeBSD.org
Fri Oct 23 13:07:22 UTC 2009
Author: mav
Date: Fri Oct 23 13:07:22 2009
New Revision: 198390
URL: http://svn.freebsd.org/changeset/base/198390
Log:
Revert interrupt reason check order back.
ATAPI errors may set IF bit together with TFE.
Modified:
head/sys/dev/ahci/ahci.c
Modified: head/sys/dev/ahci/ahci.c
==============================================================================
--- head/sys/dev/ahci/ahci.c Fri Oct 23 12:36:42 2009 (r198389)
+++ head/sys/dev/ahci/ahci.c Fri Oct 23 13:07:22 2009 (r198390)
@@ -1001,12 +1001,7 @@ ahci_ch_intr(void *data)
/* XXX: reqests in loading state. */
if (((err >> i) & 1) == 0)
continue;
- if (istatus & AHCI_P_IX_IF) {
- if (ch->numtslots == 0 && i != ccs)
- et = AHCI_ERR_INNOCENT;
- else
- et = AHCI_ERR_SATA;
- } else if (istatus & AHCI_P_IX_TFE) {
+ if (istatus & AHCI_P_IX_TFE) {
/* Task File Error */
if (ch->numtslots == 0) {
/* Untagged operation. */
@@ -1019,6 +1014,11 @@ ahci_ch_intr(void *data)
et = AHCI_ERR_NCQ;
ncq_err = 1;
}
+ } else if (istatus & AHCI_P_IX_IF) {
+ if (ch->numtslots == 0 && i != ccs)
+ et = AHCI_ERR_INNOCENT;
+ else
+ et = AHCI_ERR_SATA;
} else
et = AHCI_ERR_INVALID;
ahci_end_transaction(&ch->slot[i], et);
More information about the svn-src-all
mailing list