summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2007-06-26 09:13:31 +0200
committerDavid S. Miller <davem@davemloft.net>2007-06-26 09:13:31 +0200
commita357b8f42e7b85e2522c3ad2b29b685bc28743b4 (patch)
tree72c8f25c1d1beb75adb226fcb16c42d763a717fa /arch
parent[SPARC64]: Fix VIRQ enabling. (diff)
downloadlinux-a357b8f42e7b85e2522c3ad2b29b685bc28743b4.tar.xz
linux-a357b8f42e7b85e2522c3ad2b29b685bc28743b4.zip
[SPARC64]: Need to set state to IDLE during sun4v IRQ enable.
This fixes hypervisor console interrupts on LDOM guests. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc64/kernel/irq.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index a862d13fc857..6b6165d36fd8 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -329,6 +329,10 @@ static void sun4v_irq_enable(unsigned int virt_irq)
if (err != HV_EOK)
printk("sun4v_intr_settarget(%x,%lu): err(%d)\n",
ino, cpuid, err);
+ err = sun4v_intr_setstate(ino, HV_INTR_STATE_IDLE);
+ if (err != HV_EOK)
+ printk("sun4v_intr_setstate(%x): "
+ "err(%d)\n", ino, err);
err = sun4v_intr_setenabled(ino, HV_INTR_ENABLED);
if (err != HV_EOK)
printk("sun4v_intr_setenabled(%x): err(%d)\n",