[PATCH 00/29] ARM: KVM: pre-arm64 KVM/arm rework

Marc Zyngier marc.zyngier at arm.com
Mon Mar 4 21:42:54 EST 2013


This patch series is reworking KVM/arm in order to prepare the code
to be shared with the upcoming KVM/arm64.

Nothing major here, just a lot of accessors, small cleanups and fixes
to make the code useable on arm64.

This code has been tested on VE-TC2 and arm64 models. As always,
comments are most welcome.

Marc Zyngier (29):
  ARM: KVM: convert GP registers from u32 to unsigned long
  ARM: KVM: abstract fault register accesses
  ARM: KVM: abstract HSR_ISV away
  ARM: KVM: abstract HSR_WNR away
  ARM: KVM: abstract HSR_SSE away
  ARM: KVM: abstract HSR_SRT_{MASK,SHIFT} away
  ARM: KVM: abstract external abort detection away
  ARM: KVM: abstract S1TW abort detection away
  ARM: KVM: abstract SAS decoding away
  ARM: KVM: abstract IL decoding away
  ARM: KVM: abstract exception class decoding away
  ARM: KVM: abstract fault decoding away
  ARM: KVM: abstract HSR_EC_IABT away
  ARM: KVM: move kvm_condition_valid to emulate.c
  ARM: KVM: move exit handler selection to a separate file
  ARM: KVM: move kvm_handle_wfi to handle_exit.c
  ARM: KVM: abstract most MMU operations
  ARM: KVM: remove superfluous include from kvm_vgic.h
  ARM: KVM: move hyp init to kvm_host.h
  ARM: KVM: use kvm_kernel_vfp_t as an abstract type for VFP containers
  ARM: KVM: allow HYP mappings to be at an offset from kernel mappings
  ARM: KVM: fix address validation for HYP mappings
  ARM: KVM: sanitize freeing of HYP page tables
  ARM: KVM: move kvm_target_cpu to guest.c
  ARM: KVM: fix fault_ipa computing
  ARM: KVM: vgic: decouple alignment restriction from page size
  ARM: KVM: move include of asm/idmap.h to kvm_mmu.h
  ARM: KVM: change kvm_tlb_flush_vmid to kvm_tlb_flush_vmid_ipa
  ARM: KVM: Fix length of mmio access

 arch/arm/include/asm/kvm_asm.h     |   2 +-
 arch/arm/include/asm/kvm_emulate.h | 101 +++++++++++++++++--
 arch/arm/include/asm/kvm_host.h    |  42 ++++++--
 arch/arm/include/asm/kvm_mmu.h     |  67 +++++++++++++
 arch/arm/include/asm/kvm_vgic.h    |   1 -
 arch/arm/include/uapi/asm/kvm.h    |  12 +--
 arch/arm/kernel/asm-offsets.c      |   8 +-
 arch/arm/kvm/Makefile              |   2 +-
 arch/arm/kvm/arm.c                 | 194 +------------------------------------
 arch/arm/kvm/coproc.c              |  28 +++---
 arch/arm/kvm/coproc.h              |   4 +-
 arch/arm/kvm/emulate.c             |  75 +++++++++-----
 arch/arm/kvm/guest.c               |  17 ++++
 arch/arm/kvm/handle_exit.c         | 159 ++++++++++++++++++++++++++++++
 arch/arm/kvm/interrupts.S          |   9 +-
 arch/arm/kvm/mmio.c                |  46 ++++-----
 arch/arm/kvm/mmu.c                 | 184 +++++++++++++++++------------------
 arch/arm/kvm/vgic.c                |   2 +-
 18 files changed, 568 insertions(+), 385 deletions(-)
 create mode 100644 arch/arm/kvm/handle_exit.c

-- 
1.7.12.4




More information about the linux-arm-kernel mailing list