linux-cvs-patches
[Top] [All Lists]

CVS Update@linux-mips.org: linux

To: linux-cvs-patches@linux-mips.org
Subject: CVS Update@linux-mips.org: linux
From: ralf@linux-mips.org
Date: Sun, 13 Feb 2005 23:10:14 +0000
Reply-to: linux-mips@linux-mips.org
Sender: linux-cvs-patches-bounce@linux-mips.org
CVSROOT:        /home/cvs
Module name:    linux
Changes by:     ralf@ftp.linux-mips.org 05/02/13 23:10:08

Modified files:
        arch/mips/sgi-ip27: ip27-smp.c 

Log message:
        Replace the complicated and broken attempt to clean interrupt by
        something simple - doesn't need to be fast, after all.

diff -urN linux/arch/mips/sgi-ip27/ip27-smp.c 
linux/arch/mips/sgi-ip27/ip27-smp.c
--- linux/arch/mips/sgi-ip27/ip27-smp.c 2005/02/13 18:53:26     1.21
+++ linux/arch/mips/sgi-ip27/ip27-smp.c 2005/02/13 23:10:08     1.22
@@ -127,29 +127,17 @@
        printk("Discovered %d cpus on %d nodes\n", highest + 1, 
num_online_nodes());
 }
 
-static void intr_clear_bits(nasid_t nasid, volatile hubreg_t *pend,
-       int base_level)
+static __init void intr_clear_all(nasid_t nasid)
 {
-       volatile hubreg_t bits;
        int i;
 
-       /* Check pending interrupts */
-       if ((bits = HUB_L(pend)) != 0)
-               for (i = 0; i < N_INTPEND_BITS; i++)
-                       if (bits & (1 << i))
-                               LOCAL_HUB_CLR_INTR(base_level + i);
-}
-
-static void intr_clear_all(nasid_t nasid)
-{
        REMOTE_HUB_S(nasid, PI_INT_MASK0_A, 0);
        REMOTE_HUB_S(nasid, PI_INT_MASK0_B, 0);
        REMOTE_HUB_S(nasid, PI_INT_MASK1_A, 0);
        REMOTE_HUB_S(nasid, PI_INT_MASK1_B, 0);
-       intr_clear_bits(nasid, REMOTE_HUB_ADDR(nasid, PI_INT_PEND0),
-                       INT_PEND0_BASELVL);
-       intr_clear_bits(nasid, REMOTE_HUB_ADDR(nasid, PI_INT_PEND1),
-                       INT_PEND1_BASELVL);
+
+       for (i = 0; i < 128; i++) 
+               REMOTE_HUB_CLR_INTR(nasid, i);
 }
 
 void __init prom_prepare_cpus(unsigned int max_cpus)

<Prev in Thread] Current Thread [Next in Thread>