1. 29 1月, 2015 1 次提交
  2. 28 1月, 2015 1 次提交
  3. 23 1月, 2015 1 次提交
  4. 21 1月, 2015 18 次提交
  5. 16 1月, 2015 2 次提交
  6. 11 1月, 2015 2 次提交
  7. 09 1月, 2015 1 次提交
  8. 28 12月, 2014 2 次提交
  9. 15 12月, 2014 2 次提交
    • C
      arm/arm64: KVM: Require in-kernel vgic for the arch timers · 05971120
      Christoffer Dall 提交于
      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: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NChristoffer Dall <christoffer.dall@linaro.org>
      05971120
    • C
      arm/arm64: KVM: Initialize the vgic on-demand when injecting IRQs · ca7d9c82
      Christoffer Dall 提交于
      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: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NChristoffer Dall <christoffer.dall@linaro.org>
      ca7d9c82
  10. 13 12月, 2014 3 次提交
  11. 04 12月, 2014 6 次提交
  12. 26 11月, 2014 1 次提交
    • A
      kvm: fix kvm_is_mmio_pfn() and rename to kvm_is_reserved_pfn() · d3fccc7e
      Ard Biesheuvel 提交于
      This reverts commit 85c8555f ("KVM: check for !is_zero_pfn() in
      kvm_is_mmio_pfn()") and renames the function to kvm_is_reserved_pfn.
      
      The problem being addressed by the patch above was that some ARM code
      based the memory mapping attributes of a pfn on the return value of
      kvm_is_mmio_pfn(), whose name indeed suggests that such pfns should
      be mapped as device memory.
      
      However, kvm_is_mmio_pfn() doesn't do quite what it says on the tin,
      and the existing non-ARM users were already using it in a way which
      suggests that its name should probably have been 'kvm_is_reserved_pfn'
      from the beginning, e.g., whether or not to call get_page/put_page on
      it etc. This means that returning false for the zero page is a mistake
      and the patch above should be reverted.
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d3fccc7e