summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2018-08-24 17:24:26 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2018-08-24 17:24:26 -0400
commit44620f6e814b406e8890d1a0a0b4e4e625e95ed0 (patch)
tree4a2987ecaf1c00b9683a0ae12f220477cdf4fcb2
parentaa6330543bb039406260c578d17eb6d80916dba0 (diff)
downloadlongterm-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.patch43
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())