From: Michal Ostrowski Date: Wed, 20 Dec 2006 13:29:40 +0000 (-0600) Subject: [POWERPC] Avoid calling get_irq_server() with a real, not virtual irq. X-Git-Tag: v2.6.20-rc5~35^2~15 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=673aeb76d07f49f2b07792f813bc2a9fee212ab7;p=linux-2.6 [POWERPC] Avoid calling get_irq_server() with a real, not virtual irq. We can use default_server when masking an interrupt vector. get_irq_server() assumes a virtual irq, so badness may happen if we give it a real one. Signed-off-by: Michal Ostrowski Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index b5b2b1103d..81d172d650 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c @@ -224,7 +224,6 @@ static void xics_unmask_irq(unsigned int virq) static void xics_mask_real_irq(unsigned int irq) { int call_status; - unsigned int server; if (irq == XICS_IPI) return; @@ -236,9 +235,9 @@ static void xics_mask_real_irq(unsigned int irq) return; } - server = get_irq_server(irq); /* Have to set XIVE to 0xff to be able to remove a slot */ - call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, server, 0xff); + call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, + default_server, 0xff); if (call_status != 0) { printk(KERN_ERR "xics_disable_irq: irq=%u: ibm_set_xive(0xff)" " returned %d\n", irq, call_status);