diff options
| author | Michal Ostrowski <mostrows@watson.ibm.com> | 2006-12-20 08:29:40 -0500 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2007-01-09 01:03:01 -0500 |
| commit | 673aeb76d07f49f2b07792f813bc2a9fee212ab7 (patch) | |
| tree | 6949c5d846708f5cb99057656719b326c25e0960 | |
| parent | 5e264a5215e4b703b1bbeb2910ea4441886be8d7 (diff) | |
[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>
| -rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 5 |
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) | |||
| 224 | static void xics_mask_real_irq(unsigned int irq) | 224 | static void xics_mask_real_irq(unsigned int irq) |
| 225 | { | 225 | { |
| 226 | int call_status; | 226 | int call_status; |
| 227 | unsigned int server; | ||
| 228 | 227 | ||
| 229 | if (irq == XICS_IPI) | 228 | if (irq == XICS_IPI) |
| 230 | return; | 229 | return; |
| @@ -236,9 +235,9 @@ static void xics_mask_real_irq(unsigned int irq) | |||
| 236 | return; | 235 | return; |
| 237 | } | 236 | } |
| 238 | 237 | ||
| 239 | server = get_irq_server(irq); | ||
| 240 | /* Have to set XIVE to 0xff to be able to remove a slot */ | 238 | /* Have to set XIVE to 0xff to be able to remove a slot */ |
| 241 | call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, server, 0xff); | 239 | call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, |
| 240 | default_server, 0xff); | ||
| 242 | if (call_status != 0) { | 241 | if (call_status != 0) { |
| 243 | printk(KERN_ERR "xics_disable_irq: irq=%u: ibm_set_xive(0xff)" | 242 | printk(KERN_ERR "xics_disable_irq: irq=%u: ibm_set_xive(0xff)" |
| 244 | " returned %d\n", irq, call_status); | 243 | " returned %d\n", irq, call_status); |
