This patch is from Nathan Lynch <[EMAIL PROTECTED]>.

When offlining a cpu, any device interrupts which are bound to the cpu
have their affinity forcibly reset to all cpus (the default).
However, the value in /proc/irq/XXX/smp_affinity remains unchanged.
Since we're doing this while all the other cpus are stopped, it should
be safe to just call desc->handler->set_affinity and manually update
the irq_affinity array.


Signed-off-by: Nathan Lynch <[EMAIL PROTECTED]>
Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>

 xics.c |   11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

Index: linux-2.6.11-bk2/arch/ppc64/kernel/xics.c
===================================================================
--- linux-2.6.11-bk2.orig/arch/ppc64/kernel/xics.c      2005-03-02 
07:38:10.000000000 +0000
+++ linux-2.6.11-bk2/arch/ppc64/kernel/xics.c   2005-03-07 03:52:08.000000000 
+0000
@@ -704,15 +704,8 @@ void xics_migrate_irqs_away(void)
                       virq, cpu);
 
                /* Reset affinity to all cpus */
-               xics_status[0] = default_distrib_server;
-
-               status = rtas_call(ibm_set_xive, 3, 1, NULL, irq,
-                               xics_status[0], xics_status[1]);
-               if (status)
-                       printk(KERN_ERR "migrate_irqs_away: irq=%d "
-                                       "ibm,set-xive returns %d\n",
-                                       virq, status);
-
+               desc->handler->set_affinity(virq, CPU_MASK_ALL);
+               irq_affinity[virq] = CPU_MASK_ALL;
 unlock:
                spin_unlock_irqrestore(&desc->lock, flags);
        }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to