svn commit: r199427 - stable/8/sys/dev/ahci
Alexander Motin
mav at FreeBSD.org
Tue Nov 17 20:19:20 UTC 2009
Author: mav
Date: Tue Nov 17 20:19:20 2009
New Revision: 199427
URL: http://svn.freebsd.org/changeset/base/199427
Log:
MFC r198390:
Revert interrupt reason check order back.
ATAPI errors may set IF bit together with TFE.
Modified:
stable/8/sys/dev/ahci/ahci.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
Modified: stable/8/sys/dev/ahci/ahci.c
==============================================================================
--- stable/8/sys/dev/ahci/ahci.c Tue Nov 17 20:17:48 2009 (r199426)
+++ stable/8/sys/dev/ahci/ahci.c Tue Nov 17 20:19:20 2009 (r199427)
@@ -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-stable
mailing list