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

Commit 4340ba80 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

arm64: KVM: Move BP hardening vectors into .hyp.text section



There is no reason why the BP hardening vectors shouldn't be part
of the HYP text at compile time, rather than being mapped at runtime.

Also introduce a new config symbol that controls the compilation
of bpi.S.

Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Reviewed-by: default avatarAndrew Jones <drjones@redhat.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 7e80f637
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -380,9 +380,7 @@ static inline void *kvm_get_hyp_vector(void)

static inline int kvm_map_vectors(void)
{
	return create_hyp_mappings(kvm_ksym_ref(__bp_harden_hyp_vecs_start),
				   kvm_ksym_ref(__bp_harden_hyp_vecs_end),
				   PAGE_HYP_EXEC);
	return 0;
}

#else
+1 −3
Original line number Diff line number Diff line
@@ -54,9 +54,7 @@ arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o
arm64-obj-$(CONFIG_CRASH_DUMP)		+= crash_dump.o
arm64-obj-$(CONFIG_ARM_SDE_INTERFACE)	+= sdei.o

ifeq ($(CONFIG_KVM),y)
arm64-obj-$(CONFIG_HARDEN_BRANCH_PREDICTOR)	+= bpi.o
endif
arm64-obj-$(CONFIG_KVM_INDIRECT_VECTORS)+= bpi.o

obj-y					+= $(arm64-obj-y) vdso/ probes/
obj-m					+= $(arm64-obj-m)
+6 −0
Original line number Diff line number Diff line
@@ -48,6 +48,10 @@
	ventry \target + 0x780
.endm


	.text
	.pushsection	.hyp.text, "ax"

	.align	11
ENTRY(__bp_harden_hyp_vecs_start)
	.rept 4
@@ -55,6 +59,8 @@ ENTRY(__bp_harden_hyp_vecs_start)
	.endr
ENTRY(__bp_harden_hyp_vecs_end)

	.popsection

ENTRY(__qcom_hyp_sanitize_link_stack_start)
	stp     x29, x30, [sp, #-16]!
	.rept	16
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,9 @@ config KVM_ARM_PMU
	  Adds support for a virtual Performance Monitoring Unit (PMU) in
	  virtual machines.

config KVM_INDIRECT_VECTORS
       def_bool KVM && HARDEN_BRANCH_PREDICTOR

source drivers/vhost/Kconfig

endif # VIRTUALIZATION