summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichal Ostrowski <mostrows@watson.ibm.com>2006-12-20 07:29:40 -0600
committerPaul Mackerras <paulus@samba.org>2007-01-09 17:03:01 +1100
commit673aeb76d07f49f2b07792f813bc2a9fee212ab7 (patch)
tree6949c5d846708f5cb99057656719b326c25e0960 /arch
parent5e264a5215e4b703b1bbeb2910ea4441886be8d7 (diff)
downloadlinux-673aeb76d07f49f2b07792f813bc2a9fee212ab7.tar.gz
linux-673aeb76d07f49f2b07792f813bc2a9fee212ab7.tar.bz2
linux-673aeb76d07f49f2b07792f813bc2a9fee212ab7.zip
[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 <mostrows@watson.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/platforms/pseries/xics.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index b5b2b1103de8..81d172d65038 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);