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);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to