]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'kvm-arm-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm...
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 7 Apr 2015 16:09:20 +0000 (18:09 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 7 Apr 2015 16:09:20 +0000 (18:09 +0200)
KVM/ARM changes for v4.1:

- fixes for live migration
- irqfd support
- kvm-io-bus & vgic rework to enable ioeventfd
- page ageing for stage-2 translation
- various cleanups

14 files changed:
1  2 
Documentation/virtual/kvm/api.txt
arch/arm/kvm/mmu.c
arch/arm64/include/asm/kvm_arm.h
arch/s390/kvm/diag.c
arch/x86/kvm/i8259.c
arch/x86/kvm/ioapic.c
arch/x86/kvm/ioapic.h
arch/x86/kvm/lapic.c
arch/x86/kvm/vmx.c
arch/x86/kvm/x86.c
include/kvm/arm_vgic.h
include/linux/kvm_host.h
virt/kvm/arm/vgic.c
virt/kvm/kvm_main.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index c9f60f52458802f4a66a3912732d8665bc4a3e32,b70174e748684c5a01005dced63e21fa883f735a..8d550ff14700c8a628b9c2c6ab55301f6bd0e92b
@@@ -955,6 -1095,25 +1101,26 @@@ static void vgic_retire_disabled_irqs(s
        }
  }
  
+ static void vgic_queue_irq_to_lr(struct kvm_vcpu *vcpu, int irq,
+                                int lr_nr, struct vgic_lr vlr)
+ {
+       if (vgic_irq_is_active(vcpu, irq)) {
+               vlr.state |= LR_STATE_ACTIVE;
+               kvm_debug("Set active, clear distributor: 0x%x\n", vlr.state);
+               vgic_irq_clear_active(vcpu, irq);
+               vgic_update_state(vcpu->kvm);
+       } else if (vgic_dist_irq_is_pending(vcpu, irq)) {
+               vlr.state |= LR_STATE_PENDING;
+               kvm_debug("Set pending: 0x%x\n", vlr.state);
+       }
+       if (!vgic_irq_is_edge(vcpu, irq))
+               vlr.state |= LR_EOI_INT;
+       vgic_set_lr(vcpu, lr_nr, vlr);
++      vgic_sync_lr_elrsr(vcpu, lr_nr, vlr);
+ }
  /*
   * Queue an interrupt to a CPU virtual interface. Return true on success,
   * or false if it wasn't possible to queue it.
Simple merge