Subject: [PATCH 1/4][POWERPC] Update irq descriptor affinity

From: Nathan Fontenot <[email-masked]>
Date: Wed, 06 Feb 2008 14:37:26 -0600

The affinity mask in the virq descriptor needs to be set before we reset the 
affinity for the virq.  Without doing this the call to get the new irq server
fails and we end up leaving the virq pinned to the cpu we are removing.

This does not fail the cpu remove from the kernel, but it does prevent cpu dlpar
remove operations from returning the cpu to the hypervisor.

Signed-off-by: Nathan Fontenot <[email-masked]>

---
Index: linux-2.6/arch/powerpc/platforms/pseries/xics.c
===================================================================
--- linux-2.6.orig/arch/powerpc/platforms/pseries/xics.c	2008-02-04 14:27:43.000000000 -0600
+++ linux-2.6/arch/powerpc/platforms/pseries/xics.c	2008-02-05 10:40:06.000000000 -0600
@@ -880,8 +880,8 @@
 		       virq, cpu);
 
 		/* Reset affinity to all cpus */
+		irq_desc[virq].affinity = CPU_MASK_ALL;
 		desc->chip->set_affinity(virq, CPU_MASK_ALL);
-		irq_desc[irq].affinity = CPU_MASK_ALL;
 unlock:
 		spin_unlock_irqrestore(&desc->lock, flags);
 	}