[IA64-SGI] Check for TIO errors on shub2 Altix
authorRuss Anderson <rja@sgi.com>
Mon, 8 Jan 2007 22:05:08 +0000 (16:05 -0600)
committerTony Luck <tony.luck@intel.com>
Mon, 5 Feb 2007 22:27:54 +0000 (14:27 -0800)
The shub2 error interrupt handler must check for TIO errors.

Signed-off-by: Russ Anderson (rja@sgi.com)
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/sn/kernel/huberror.c

index abca6bd..fcf7f93 100644 (file)
@@ -3,7 +3,7 @@
  * License.  See the file "COPYING" in the main directory of this archive
  * for more details.
  *
- * Copyright (C) 1992 - 1997, 2000,2002-2005 Silicon Graphics, Inc. All rights reserved.
+ * Copyright (C) 1992 - 1997, 2000,2002-2007 Silicon Graphics, Inc. All rights reserved.
  */
 
 #include <linux/types.h>
@@ -38,12 +38,20 @@ static irqreturn_t hub_eint_handler(int irq, void *arg)
                        (u64) nasid, 0, 0, 0, 0, 0, 0);
 
                if ((int)ret_stuff.v0)
-                       panic("hubii_eint_handler(): Fatal TIO Error");
+                       panic("%s: Fatal %s Error", __FUNCTION__,
+                               ((nasid & 1) ? "TIO" : "HUBII"));
 
                if (!(nasid & 1)) /* Not a TIO, handle CRB errors */
                        (void)hubiio_crb_error_handler(hubdev_info);
-       } else 
-               bte_error_handler((unsigned long)NODEPDA(nasid_to_cnodeid(nasid)));
+       } else
+               if (nasid & 1) {        /* TIO errors */
+                       SAL_CALL_NOLOCK(ret_stuff, SN_SAL_HUB_ERROR_INTERRUPT,
+                               (u64) nasid, 0, 0, 0, 0, 0, 0);
+
+                       if ((int)ret_stuff.v0)
+                               panic("%s: Fatal TIO Error", __FUNCTION__);
+               } else
+                       bte_error_handler((unsigned long)NODEPDA(nasid_to_cnodeid(nasid)));
 
        return IRQ_HANDLED;
 }