aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries
diff options
context:
space:
mode:
authorNathan Fontenot <nfont@austin.ibm.com>2008-02-06 15:37:26 -0500
committerPaul Mackerras <paulus@samba.org>2008-02-06 19:40:19 -0500
commita52572ddcd3d16cc5ccc9679bcbb7256d0ddad84 (patch)
treec19abad35b95d8e270367857e8abb705b8b1da08 /arch/powerpc/platforms/pseries
parent25431333813686654907ab987fb5de10c10a16db (diff)
[POWERPC] Update irq descriptor affinity
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 <nfont@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/pseries')
-rw-r--r--arch/powerpc/platforms/pseries/xics.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 8f8dd9c3ca6b..00e9d296118e 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -880,8 +880,8 @@ void xics_migrate_irqs_away(void)
880 virq, cpu); 880 virq, cpu);
881 881
882 /* Reset affinity to all cpus */ 882 /* Reset affinity to all cpus */
883 irq_desc[virq].affinity = CPU_MASK_ALL;
883 desc->chip->set_affinity(virq, CPU_MASK_ALL); 884 desc->chip->set_affinity(virq, CPU_MASK_ALL);
884 irq_desc[irq].affinity = CPU_MASK_ALL;
885unlock: 885unlock:
886 spin_unlock_irqrestore(&desc->lock, flags); 886 spin_unlock_irqrestore(&desc->lock, flags);
887 } 887 }