aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/include
diff options
context:
space:
mode:
authorKevin Hilman <khilman@linaro.org>2015-08-04 10:11:52 -0700
committerKevin Hilman <khilman@linaro.org>2015-08-04 10:11:52 -0700
commit69483e398f196d87ca3289f31ad3291bad94af60 (patch)
tree547d41fb7d28499738a4307790e9c45d1e082c68 /arch/arm64/include
parenta32844ca3a02130d9c0166b65f54696dfaafc922 (diff)
parent863394fce1f2be8589396cd0684e6693ec89f295 (diff)
Merge branch 'linux-linaro-lsk-v3.14' of https://git.linaro.org/people/shannon.zhao/linux-stable into linux-linaro-lsk-v3.14
Merge from Shannon Zhao: resolves conflicts between LTS v3.14.48 KVM and LSK KVM * 'linux-linaro-lsk-v3.14' of https://git.linaro.org/people/shannon.zhao/linux-stable: (31 commits) Linux 3.14.48 x86/iosf: Add Kconfig prompt for IOSF_MBI selection arm/arm64: KVM: Keep elrsr/aisr in sync with software model arm64: KVM: Do not use pgd_index to index stage-2 pgd arm64: KVM: Fix HCR setting for 32bit guests arm64: KVM: Fix TLB invalidation by IPA/VMID arm/arm64: KVM: Require in-kernel vgic for the arch timers vfs: Ignore unlocked mounts in fs_fully_visible vfs: Remove incorrect debugging WARN in prepend_path fs: Fix S_NOSEC handling KVM: x86: make vapics_in_nmi_mode atomic MIPS: Fix KVM guest fixmap address x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A x86/PCI: Use host bridge _CRS info on systems with >32 bit addressing powerpc/perf: Fix book3s kernel to userspace backtraces arm: KVM: force execution of HCPTR access on VM exit intel_pstate: set BYT MSR with wrmsrl_on_cpu() iommu/amd: Handle large pages correctly in free_pagetable Revert "crypto: talitos - convert to use be16_add_cpu()" crypto: talitos - avoid memleak in talitos_alg_alloc() ...
Diffstat (limited to 'arch/arm64/include')
-rw-r--r--arch/arm64/include/asm/kvm_emulate.h2
-rw-r--r--arch/arm64/include/asm/kvm_mmu.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h
index 8127e45e2637..865a7e28ea2d 100644
--- a/arch/arm64/include/asm/kvm_emulate.h
+++ b/arch/arm64/include/asm/kvm_emulate.h
@@ -41,6 +41,8 @@ void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr);
static inline void vcpu_reset_hcr(struct kvm_vcpu *vcpu)
{
vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS;
+ if (test_bit(KVM_ARM_VCPU_EL1_32BIT, vcpu->arch.features))
+ vcpu->arch.hcr_el2 &= ~HCR_RW;
}
static inline unsigned long *vcpu_pc(const struct kvm_vcpu *vcpu)
diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
index 0d51874c838f..15a8a861264a 100644
--- a/arch/arm64/include/asm/kvm_mmu.h
+++ b/arch/arm64/include/asm/kvm_mmu.h
@@ -69,6 +69,8 @@
#define PTRS_PER_S2_PGD (1 << (KVM_PHYS_SHIFT - PGDIR_SHIFT))
#define S2_PGD_ORDER get_order(PTRS_PER_S2_PGD * sizeof(pgd_t))
+#define kvm_pgd_index(addr) (((addr) >> PGDIR_SHIFT) & (PTRS_PER_S2_PGD - 1))
+
int create_hyp_mappings(void *from, void *to);
int create_hyp_io_mappings(void *from, void *to, phys_addr_t);
void free_boot_hyp_pgd(void);