Fix the problem that redirect hit bit in I/O SAPIC RTE is set even
when it must be disabled (e.g. nointroute boot option is set, CPU
hotplug is enabled or percpu vector is enabled).

Signed-off-by: Kenji Kaneshige <[EMAIL PROTECTED]>

---
 arch/ia64/kernel/iosapic.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

Index: linux-2.6.24-rc1/arch/ia64/kernel/iosapic.c
===================================================================
--- linux-2.6.24-rc1.orig/arch/ia64/kernel/iosapic.c
+++ linux-2.6.24-rc1/arch/ia64/kernel/iosapic.c
@@ -762,6 +762,12 @@ iosapic_register_intr (unsigned int gsi,
        unsigned long flags;
        struct iosapic_rte_info *rte;
        u32 low32;
+       unsigned char dmode;
+
+       if (smp_int_redirect & SMP_IRQ_REDIRECTION)
+               dmode = IOSAPIC_LOWEST_PRIORITY;
+       else
+               dmode = IOSAPIC_FIXED;
 
        /*
         * If this GSI has already been registered (i.e., it's a
@@ -791,8 +797,7 @@ iosapic_register_intr (unsigned int gsi,
 
        spin_lock(&irq_desc[irq].lock);
        dest = get_target_cpu(gsi, irq);
-       err = register_intr(gsi, irq, IOSAPIC_LOWEST_PRIORITY,
-                           polarity, trigger);
+       err = register_intr(gsi, irq, dmode, polarity, trigger);
        if (err < 0) {
                spin_unlock(&irq_desc[irq].lock);
                irq = err;

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to