diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-24 17:24:26 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-24 17:24:26 -0400 |
commit | 44620f6e814b406e8890d1a0a0b4e4e625e95ed0 (patch) | |
tree | 4a2987ecaf1c00b9683a0ae12f220477cdf4fcb2 | |
parent | aa6330543bb039406260c578d17eb6d80916dba0 (diff) | |
download | longterm-queue-4.12-44620f6e814b406e8890d1a0a0b4e4e625e95ed0.tar.gz |
arm: refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/arm64-KVM-Add-ARCH_WORKAROUND_2-discovery-through-AR.patch | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/queue/arm64-KVM-Add-ARCH_WORKAROUND_2-discovery-through-AR.patch b/queue/arm64-KVM-Add-ARCH_WORKAROUND_2-discovery-through-AR.patch index 4c747d9..ca576b1 100644 --- a/queue/arm64-KVM-Add-ARCH_WORKAROUND_2-discovery-through-AR.patch +++ b/queue/arm64-KVM-Add-ARCH_WORKAROUND_2-discovery-through-AR.patch @@ -1,4 +1,4 @@ -From 5d81f7dc9bca4f4963092433e27b508cbe524a32 Mon Sep 17 00:00:00 2001 +From cd0087bf41b1c440f5c365a3672fea68605b68aa Mon Sep 17 00:00:00 2001 From: Marc Zyngier <marc.zyngier@arm.com> Date: Tue, 29 May 2018 13:11:18 +0100 Subject: [PATCH] arm64: KVM: Add ARCH_WORKAROUND_2 discovery through @@ -14,15 +14,16 @@ Acked-by: Christoffer Dall <christoffer.dall@arm.com> Reviewed-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h -index c7c28c885a19..7001fb871429 100644 +index 5c4903b4db28..bdb32b02e763 100644 --- a/arch/arm/include/asm/kvm_host.h +++ b/arch/arm/include/asm/kvm_host.h -@@ -315,6 +315,18 @@ static inline bool kvm_arm_harden_branch_predictor(void) - return false; - } - +@@ -284,6 +284,18 @@ struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr); + static inline void kvm_arch_hardware_unsetup(void) {} + static inline void kvm_arch_sync_events(struct kvm *kvm) {} + static inline void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) {} +#define KVM_SSBD_UNKNOWN -1 +#define KVM_SSBD_FORCE_DISABLE 0 +#define KVM_SSBD_KERNEL 1 @@ -35,16 +36,16 @@ index c7c28c885a19..7001fb871429 100644 + return KVM_SSBD_UNKNOWN; +} + - static inline void kvm_vcpu_load_sysregs(struct kvm_vcpu *vcpu) {} - static inline void kvm_vcpu_put_sysregs(struct kvm_vcpu *vcpu) {} + static inline void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu) {} + static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {} diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h -index 9bef3f69bdcd..95d8a0e15b5f 100644 +index 4b3b78fd48ce..6afde48ac9ad 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h -@@ -455,6 +455,29 @@ static inline bool kvm_arm_harden_branch_predictor(void) - return cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR); - } +@@ -391,6 +391,29 @@ static inline void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) {} + static inline void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu) {} + static inline void kvm_arch_vcpu_block_finish(struct kvm_vcpu *vcpu) {} +#define KVM_SSBD_UNKNOWN -1 +#define KVM_SSBD_FORCE_DISABLE 0 @@ -69,14 +70,14 @@ index 9bef3f69bdcd..95d8a0e15b5f 100644 + } +} + - void kvm_vcpu_load_sysregs(struct kvm_vcpu *vcpu); - void kvm_vcpu_put_sysregs(struct kvm_vcpu *vcpu); - + void kvm_arm_init_debug(void); + void kvm_arm_setup_debug(struct kvm_vcpu *vcpu); + void kvm_arm_clear_debug(struct kvm_vcpu *vcpu); diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c -index 3256b9228e75..a74311beda35 100644 +index 561badf93de8..271cc289fc65 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm/reset.c -@@ -122,6 +122,10 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu) +@@ -136,6 +136,10 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu) /* Reset PMU */ kvm_pmu_vcpu_reset(vcpu); @@ -85,13 +86,13 @@ index 3256b9228e75..a74311beda35 100644 + vcpu->arch.workaround_flags |= VCPU_WORKAROUND_2_FLAG; + /* Reset timer */ - return kvm_timer_vcpu_reset(vcpu); + return kvm_timer_vcpu_reset(vcpu, cpu_vtimer_irq, cpu_ptimer_irq); } diff --git a/virt/kvm/arm/psci.c b/virt/kvm/arm/psci.c -index c4762bef13c6..c95ab4c5a475 100644 +index 274c70ba3f7a..6b1f8c6f5aed 100644 --- a/virt/kvm/arm/psci.c +++ b/virt/kvm/arm/psci.c -@@ -405,7 +405,7 @@ static int kvm_psci_call(struct kvm_vcpu *vcpu) +@@ -402,7 +402,7 @@ static int kvm_psci_call(struct kvm_vcpu *vcpu) int kvm_hvc_call_handler(struct kvm_vcpu *vcpu) { u32 func_id = smccc_get_function(vcpu); @@ -100,7 +101,7 @@ index c4762bef13c6..c95ab4c5a475 100644 u32 feature; switch (func_id) { -@@ -417,7 +417,21 @@ int kvm_hvc_call_handler(struct kvm_vcpu *vcpu) +@@ -414,7 +414,21 @@ int kvm_hvc_call_handler(struct kvm_vcpu *vcpu) switch(feature) { case ARM_SMCCC_ARCH_WORKAROUND_1: if (kvm_arm_harden_branch_predictor()) |