Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96f7edf9 authored by Gleb Natapov's avatar Gleb Natapov
Browse files

Merge git://git.linaro.org/people/cdall/linux-kvm-arm.git tags/kvm-arm-3.11 into queue

KVM/ARM pull request for 3.11 merge window

* tag 'kvm-arm-3.11' of git://git.linaro.org/people/cdall/linux-kvm-arm.git:
  ARM: kvm: don't include drivers/virtio/Kconfig
  Update MAINTAINERS: KVM/ARM work now funded by Linaro
  arm/kvm: Cleanup KVM_ARM_MAX_VCPUS logic
  ARM: KVM: clear exclusive monitor on all exception returns
  ARM: KVM: add missing dsb before invalidating Stage-2 TLBs
  ARM: KVM: perform save/restore of PAR
  ARM: KVM: get rid of S2_PGD_SIZE
  ARM: KVM: don't special case PC when doing an MMIO
  ARM: KVM: use phys_addr_t instead of unsigned long long for HYP PGDs
  ARM: KVM: remove dead prototype for __kvm_tlb_flush_vmid
  ARM: KVM: Don't handle PSCI calls via SMC
  ARM: KVM: Allow host virt timer irq to be different from guest timer virt irq
parents 24f7bb52 8bd4ffd6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4692,10 +4692,10 @@ F: arch/s390/kvm/
F:	drivers/s390/kvm/

KERNEL VIRTUAL MACHINE (KVM) FOR ARM
M:	Christoffer Dall <cdall@cs.columbia.edu>
M:	Christoffer Dall <christoffer.dall@linaro.org>
L:	kvmarm@lists.cs.columbia.edu
W:	http://systems.cs.columbia.edu/projects/kvm-arm
S:	Maintained
S:	Supported
F:	arch/arm/include/uapi/asm/kvm*
F:	arch/arm/include/asm/kvm*
F:	arch/arm/kvm/
+0 −1
Original line number Diff line number Diff line
@@ -135,7 +135,6 @@
#define KVM_PHYS_MASK	(KVM_PHYS_SIZE - 1ULL)
#define PTRS_PER_S2_PGD	(1ULL << (KVM_PHYS_SHIFT - 30))
#define S2_PGD_ORDER	get_order(PTRS_PER_S2_PGD * sizeof(pgd_t))
#define S2_PGD_SIZE	(1 << S2_PGD_ORDER)

/* Virtualization Translation Control Register (VTCR) bits */
#define VTCR_SH0	(3 << 12)
+12 −12
Original line number Diff line number Diff line
@@ -37,16 +37,18 @@
#define c5_AIFSR	15	/* Auxilary Instrunction Fault Status R */
#define c6_DFAR		16	/* Data Fault Address Register */
#define c6_IFAR		17	/* Instruction Fault Address Register */
#define c9_L2CTLR	18	/* Cortex A15 L2 Control Register */
#define c10_PRRR	19	/* Primary Region Remap Register */
#define c10_NMRR	20	/* Normal Memory Remap Register */
#define c12_VBAR	21	/* Vector Base Address Register */
#define c13_CID		22	/* Context ID Register */
#define c13_TID_URW	23	/* Thread ID, User R/W */
#define c13_TID_URO	24	/* Thread ID, User R/O */
#define c13_TID_PRIV	25	/* Thread ID, Privileged */
#define c14_CNTKCTL	26	/* Timer Control Register (PL1) */
#define NR_CP15_REGS	27	/* Number of regs (incl. invalid) */
#define c7_PAR		18	/* Physical Address Register */
#define c7_PAR_high	19	/* PAR top 32 bits */
#define c9_L2CTLR	20	/* Cortex A15 L2 Control Register */
#define c10_PRRR	21	/* Primary Region Remap Register */
#define c10_NMRR	22	/* Normal Memory Remap Register */
#define c12_VBAR	23	/* Vector Base Address Register */
#define c13_CID		24	/* Context ID Register */
#define c13_TID_URW	25	/* Thread ID, User R/W */
#define c13_TID_URO	26	/* Thread ID, User R/O */
#define c13_TID_PRIV	27	/* Thread ID, Privileged */
#define c14_CNTKCTL	28	/* Timer Control Register (PL1) */
#define NR_CP15_REGS	29	/* Number of regs (incl. invalid) */

#define ARM_EXCEPTION_RESET	  0
#define ARM_EXCEPTION_UNDEFINED   1
@@ -72,8 +74,6 @@ extern char __kvm_hyp_vector[];
extern char __kvm_hyp_code_start[];
extern char __kvm_hyp_code_end[];

extern void __kvm_tlb_flush_vmid(struct kvm *kvm);

extern void __kvm_flush_vm_context(void);
extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);

+0 −5
Original line number Diff line number Diff line
@@ -65,11 +65,6 @@ static inline bool vcpu_mode_priv(struct kvm_vcpu *vcpu)
	return cpsr_mode > USR_MODE;;
}

static inline bool kvm_vcpu_reg_is_pc(struct kvm_vcpu *vcpu, int reg)
{
	return reg == 15;
}

static inline u32 kvm_vcpu_get_hsr(struct kvm_vcpu *vcpu)
{
	return vcpu->arch.fault.hsr;
+7 −2
Original line number Diff line number Diff line
@@ -25,7 +25,12 @@
#include <asm/fpstate.h>
#include <kvm/arm_arch_timer.h>

#if defined(CONFIG_KVM_ARM_MAX_VCPUS)
#define KVM_MAX_VCPUS CONFIG_KVM_ARM_MAX_VCPUS
#else
#define KVM_MAX_VCPUS 0
#endif

#define KVM_USER_MEM_SLOTS 32
#define KVM_PRIVATE_MEM_SLOTS 4
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
@@ -190,8 +195,8 @@ int kvm_arm_coproc_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *);
int handle_exit(struct kvm_vcpu *vcpu, struct kvm_run *run,
		int exception_index);

static inline void __cpu_init_hyp_mode(unsigned long long boot_pgd_ptr,
				       unsigned long long pgd_ptr,
static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr,
				       phys_addr_t pgd_ptr,
				       unsigned long hyp_stack_ptr,
				       unsigned long vector_ptr)
{
Loading