|
|
@@ -368,14 +368,16 @@ static void vgic_mmio_change_active(struct kvm_vcpu *vcpu, struct vgic_irq *irq,
|
|
|
*/
|
|
|
static void vgic_change_active_prepare(struct kvm_vcpu *vcpu, u32 intid)
|
|
|
{
|
|
|
- if (intid > VGIC_NR_PRIVATE_IRQS)
|
|
|
+ if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 ||
|
|
|
+ intid > VGIC_NR_PRIVATE_IRQS)
|
|
|
kvm_arm_halt_guest(vcpu->kvm);
|
|
|
}
|
|
|
|
|
|
/* See vgic_change_active_prepare */
|
|
|
static void vgic_change_active_finish(struct kvm_vcpu *vcpu, u32 intid)
|
|
|
{
|
|
|
- if (intid > VGIC_NR_PRIVATE_IRQS)
|
|
|
+ if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 ||
|
|
|
+ intid > VGIC_NR_PRIVATE_IRQS)
|
|
|
kvm_arm_resume_guest(vcpu->kvm);
|
|
|
}
|
|
|
|