Skip to content
  1. Dec 18, 2014
  2. Dec 15, 2014
    • Paolo Bonzini's avatar
      Merge tag 'kvm-arm-for-3.19-take2' of... · 333bce5a
      Paolo Bonzini authored
      Merge tag 'kvm-arm-for-3.19-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      
      Second round of changes for KVM for arm/arm64 for v3.19; fixes reboot
      problems, clarifies VCPU init, and fixes a regression concerning the
      VGIC init flow.
      
      Conflicts:
      	arch/ia64/kvm/kvm-ia64.c [deleted in HEAD and modified in kvmarm]
      333bce5a
    • Christoffer Dall's avatar
      arm/arm64: KVM: Require in-kernel vgic for the arch timers · 05971120
      Christoffer Dall authored
      
      
      It is curently possible to run a VM with architected timers support
      without creating an in-kernel VGIC, which will result in interrupts from
      the virtual timer going nowhere.
      
      To address this issue, move the architected timers initialization to the
      time when we run a VCPU for the first time, and then only initialize
      (and enable) the architected timers if we have a properly created and
      initialized in-kernel VGIC.
      
      When injecting interrupts from the virtual timer to the vgic, the
      current setup should ensure that this never calls an on-demand init of
      the VGIC, which is the only call path that could return an error from
      kvm_vgic_inject_irq(), so capture the return value and raise a warning
      if there's an error there.
      
      We also change the kvm_timer_init() function from returning an int to be
      a void function, since the function always succeeds.
      
      Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      05971120
    • Christoffer Dall's avatar
      arm/arm64: KVM: Initialize the vgic on-demand when injecting IRQs · ca7d9c82
      Christoffer Dall authored
      
      
      Userspace assumes that it can wire up IRQ injections after having
      created all VCPUs and after having created the VGIC, but potentially
      before starting the first VCPU.  This can currently lead to lost IRQs
      because the state of that IRQ injection is not stored anywhere and we
      don't return an error to userspace.
      
      We haven't seen this problem manifest itself yet, presumably because
      guests reset the devices on boot, but this could cause issues with
      migration and other non-standard startup configurations.
      
      Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      ca7d9c82
  3. Dec 13, 2014
  4. Dec 11, 2014
  5. Dec 10, 2014
  6. Dec 05, 2014
  7. Dec 04, 2014