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