[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>
This commit is contained in:
parent
5e264a5215
commit
673aeb76d0
|
@ -224,7 +224,6 @@ static void xics_unmask_irq(unsigned int virq)
|
||||||
static void xics_mask_real_irq(unsigned int irq)
|
static void xics_mask_real_irq(unsigned int irq)
|
||||||
{
|
{
|
||||||
int call_status;
|
int call_status;
|
||||||
unsigned int server;
|
|
||||||
|
|
||||||
if (irq == XICS_IPI)
|
if (irq == XICS_IPI)
|
||||||
return;
|
return;
|
||||||
|
@ -236,9 +235,9 @@ static void xics_mask_real_irq(unsigned int irq)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
server = get_irq_server(irq);
|
|
||||||
/* Have to set XIVE to 0xff to be able to remove a slot */
|
/* 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) {
|
if (call_status != 0) {
|
||||||
printk(KERN_ERR "xics_disable_irq: irq=%u: ibm_set_xive(0xff)"
|
printk(KERN_ERR "xics_disable_irq: irq=%u: ibm_set_xive(0xff)"
|
||||||
" returned %d\n", irq, call_status);
|
" returned %d\n", irq, call_status);
|
||||||
|
|
Loading…
Reference in New Issue