KVM: arm64: Move hyp-init.S to nVHE
hyp-init.S contains the identity mapped initialisation code for the non-VHE code that runs at EL2. It is only used for non-VHE. Adjust code that calls into this to use the prefixed symbol name. Signed-off-by: Andrew Scull <ascull@google.com> Signed-off-by: David Brazdil <dbrazdil@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20200625131420.71444-8-dbrazdil@google.com
This commit is contained in:
Родитель
b877e9849d
Коммит
208243c752
|
@ -78,10 +78,9 @@
|
||||||
struct kvm;
|
struct kvm;
|
||||||
struct kvm_vcpu;
|
struct kvm_vcpu;
|
||||||
|
|
||||||
extern char __kvm_hyp_init[];
|
DECLARE_KVM_NVHE_SYM(__kvm_hyp_init);
|
||||||
extern char __kvm_hyp_init_end[];
|
|
||||||
|
|
||||||
DECLARE_KVM_HYP_SYM(__kvm_hyp_vector);
|
DECLARE_KVM_HYP_SYM(__kvm_hyp_vector);
|
||||||
|
#define __kvm_hyp_init CHOOSE_NVHE_SYM(__kvm_hyp_init)
|
||||||
#define __kvm_hyp_vector CHOOSE_HYP_SYM(__kvm_hyp_vector)
|
#define __kvm_hyp_vector CHOOSE_HYP_SYM(__kvm_hyp_vector)
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_INDIRECT_VECTORS
|
#ifdef CONFIG_KVM_INDIRECT_VECTORS
|
||||||
|
|
|
@ -71,9 +71,6 @@ KVM_NVHE_ALIAS(__guest_exit);
|
||||||
KVM_NVHE_ALIAS(abort_guest_exit_end);
|
KVM_NVHE_ALIAS(abort_guest_exit_end);
|
||||||
KVM_NVHE_ALIAS(abort_guest_exit_start);
|
KVM_NVHE_ALIAS(abort_guest_exit_start);
|
||||||
|
|
||||||
/* Symbols defined in hyp-init.S (not yet compiled with nVHE build rules). */
|
|
||||||
KVM_NVHE_ALIAS(__kvm_handle_stub_hvc);
|
|
||||||
|
|
||||||
/* Symbols defined in switch.c (not yet compiled with nVHE build rules). */
|
/* Symbols defined in switch.c (not yet compiled with nVHE build rules). */
|
||||||
KVM_NVHE_ALIAS(__kvm_vcpu_run_nvhe);
|
KVM_NVHE_ALIAS(__kvm_vcpu_run_nvhe);
|
||||||
KVM_NVHE_ALIAS(hyp_panic);
|
KVM_NVHE_ALIAS(hyp_panic);
|
||||||
|
@ -113,6 +110,12 @@ KVM_NVHE_ALIAS(kimage_voffset);
|
||||||
/* Kernel symbols used to call panic() from nVHE hyp code (via ERET). */
|
/* Kernel symbols used to call panic() from nVHE hyp code (via ERET). */
|
||||||
KVM_NVHE_ALIAS(panic);
|
KVM_NVHE_ALIAS(panic);
|
||||||
|
|
||||||
|
/* Vectors installed by hyp-init on reset HVC. */
|
||||||
|
KVM_NVHE_ALIAS(__hyp_stub_vectors);
|
||||||
|
|
||||||
|
/* IDMAP TCR_EL1.T0SZ as computed by the EL1 init code */
|
||||||
|
KVM_NVHE_ALIAS(idmap_t0sz);
|
||||||
|
|
||||||
#endif /* CONFIG_KVM */
|
#endif /* CONFIG_KVM */
|
||||||
|
|
||||||
#endif /* __ARM64_KERNEL_IMAGE_VARS_H */
|
#endif /* __ARM64_KERNEL_IMAGE_VARS_H */
|
||||||
|
|
|
@ -13,7 +13,7 @@ obj-$(CONFIG_KVM) += hyp/
|
||||||
kvm-y := $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o \
|
kvm-y := $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o \
|
||||||
$(KVM)/vfio.o $(KVM)/irqchip.o \
|
$(KVM)/vfio.o $(KVM)/irqchip.o \
|
||||||
arm.o mmu.o mmio.o psci.o perf.o hypercalls.o pvtime.o \
|
arm.o mmu.o mmio.o psci.o perf.o hypercalls.o pvtime.o \
|
||||||
inject_fault.o regmap.o va_layout.o hyp.o hyp-init.o handle_exit.o \
|
inject_fault.o regmap.o va_layout.o hyp.o handle_exit.o \
|
||||||
guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o \
|
guest.o debug.o reset.o sys_regs.o sys_regs_generic_v8.o \
|
||||||
vgic-sys-reg-v3.o fpsimd.o pmu.o \
|
vgic-sys-reg-v3.o fpsimd.o pmu.o \
|
||||||
aarch32.o arch_timer.o \
|
aarch32.o arch_timer.o \
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
asflags-y := -D__KVM_NVHE_HYPERVISOR__
|
asflags-y := -D__KVM_NVHE_HYPERVISOR__
|
||||||
ccflags-y := -D__KVM_NVHE_HYPERVISOR__
|
ccflags-y := -D__KVM_NVHE_HYPERVISOR__
|
||||||
|
|
||||||
obj-y := ../hyp-entry.o
|
obj-y := hyp-init.o ../hyp-entry.o
|
||||||
|
|
||||||
obj-y := $(patsubst %.o,%.hyp.o,$(obj-y))
|
obj-y := $(patsubst %.o,%.hyp.o,$(obj-y))
|
||||||
extra-y := $(patsubst %.hyp.o,%.hyp.tmp.o,$(obj-y))
|
extra-y := $(patsubst %.hyp.o,%.hyp.tmp.o,$(obj-y))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче