diff options
author | Alexander Graf <agraf@suse.de> | 2012-02-22 16:26:34 +0100 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-04-08 12:55:28 +0300 |
commit | 7cc1e8ee78f469ecff8aa29465325f1e4c5e1b5f (patch) | |
tree | af21362c4277480ee03015c05ee446b42d27b9c1 /arch/powerpc | |
parent | 4e642ccbd6a3f1410155c7700f54b56b6c7df9a2 (diff) | |
download | op-kernel-dev-7cc1e8ee78f469ecff8aa29465325f1e4c5e1b5f.zip op-kernel-dev-7cc1e8ee78f469ecff8aa29465325f1e4c5e1b5f.tar.gz |
KVM: PPC: booke: Reinject performance monitor interrupts
When we get a performance monitor interrupt, we need to make sure that
the host receives it. So reinject it like we reinject the other host
destined interrupts.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/hw_irq.h | 1 | ||||
-rw-r--r-- | arch/powerpc/kvm/booke.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h index 51010bf..c9aac24 100644 --- a/arch/powerpc/include/asm/hw_irq.h +++ b/arch/powerpc/include/asm/hw_irq.h @@ -33,6 +33,7 @@ extern void __replay_interrupt(unsigned int vector); extern void timer_interrupt(struct pt_regs *); +extern void performance_monitor_exception(struct pt_regs *regs); #ifdef CONFIG_PPC64 #include <asm/paca.h> diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index 488936b..8e8aa4c 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c @@ -634,6 +634,10 @@ static void kvmppc_restart_interrupt(struct kvm_vcpu *vcpu, case BOOKE_INTERRUPT_MACHINE_CHECK: /* FIXME */ break; + case BOOKE_INTERRUPT_PERFORMANCE_MONITOR: + kvmppc_fill_pt_regs(®s); + performance_monitor_exception(®s); + break; } } |