Skip to content

Commit 07cf8aa

Browse files
willdeaconMarc Zyngier
authored andcommitted
KVM: arm64: Make BP hardening globals static instead
Branch predictor hardening of the hyp vectors is partially driven by a couple of global variables ('__kvm_bp_vect_base' and '__kvm_harden_el2_vector_slot'). However, these are only used within a single compilation unit, so internalise them there instead. Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Cc: Marc Zyngier <maz@kernel.org> Cc: Quentin Perret <qperret@google.com> Link: https://lore.kernel.org/r/20201113113847.21619-5-will@kernel.org
1 parent 042c76a commit 07cf8aa

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

arch/arm64/include/asm/kvm_mmu.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,6 @@ static inline int kvm_write_guest_lock(struct kvm *kvm, gpa_t gpa,
208208
return ret;
209209
}
210210

211-
extern void *__kvm_bp_vect_base;
212-
extern int __kvm_harden_el2_vector_slot;
213-
214211
#define kvm_phys_to_vttbr(addr) phys_to_ttbr(addr)
215212

216213
static __always_inline u64 kvm_get_vttbr(struct kvm_s2_mmu *mmu)

arch/arm64/kvm/arm.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ DECLARE_KVM_HYP_PER_CPU(unsigned long, kvm_hyp_vector);
5151
static DEFINE_PER_CPU(unsigned long, kvm_arm_hyp_stack_page);
5252
unsigned long kvm_arm_hyp_percpu_base[NR_CPUS];
5353

54+
/* Hypervisor VA of the indirect vector trampoline page */
55+
static void *__kvm_bp_vect_base;
56+
/*
57+
* Slot in the hyp vector page for use by the indirect vector trampoline
58+
* when mitigation against Spectre-v2 is not required.
59+
*/
60+
static int __kvm_harden_el2_vector_slot;
61+
5462
/* The VMID used in the VTTBR */
5563
static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
5664
static u32 kvm_next_vmid;

arch/arm64/kvm/va_layout.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,6 @@ void __init kvm_update_va_mask(struct alt_instr *alt,
131131
}
132132
}
133133

134-
void *__kvm_bp_vect_base;
135-
int __kvm_harden_el2_vector_slot;
136-
137134
void kvm_patch_vector_branch(struct alt_instr *alt,
138135
__le32 *origptr, __le32 *updptr, int nr_inst)
139136
{

0 commit comments

Comments
 (0)