From 58ca789e21bb4fc0af3eaeacd88252a5564a816b Mon Sep 17 00:00:00 2001 From: Vincent Donnefort Date: Fri, 21 Feb 2025 11:01:08 +0000 Subject: [PATCH] ANDROID: KVM: arm64: PROTECTED_NVHE_FTRACE to PKVM_FTRACE The mouthful PROTECTED_NVHE and now inaccurate prefix (the pKVM hypervisor actually runs with hVHE) is on its way out in favor of PKVM. Bug: 357781595 Change-Id: I3f695065677c1bba0db2e66b2f9bf9f7b777a896 Signed-off-by: Vincent Donnefort --- arch/arm64/include/asm/kvm_hypevents.h | 2 +- arch/arm64/kernel/image-vars.h | 2 +- arch/arm64/kvm/Kconfig | 2 +- arch/arm64/kvm/hyp/hyp-entry.S | 2 +- arch/arm64/kvm/hyp/include/module/nvhe/trace.h | 4 ++-- arch/arm64/kvm/hyp/nvhe/Makefile | 2 +- arch/arm64/kvm/hyp/nvhe/Makefile.nvhe | 2 +- arch/arm64/kvm/hyp/nvhe/events.c | 2 +- arch/arm64/kvm/hyp/nvhe/module.lds.S | 2 +- arch/arm64/kvm/hyp_events.c | 4 ++-- arch/arm64/kvm/pkvm.c | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/arch/arm64/include/asm/kvm_hypevents.h b/arch/arm64/include/asm/kvm_hypevents.h index 664d61c70ccc..24438e996da4 100644 --- a/arch/arm64/include/asm/kvm_hypevents.h +++ b/arch/arm64/include/asm/kvm_hypevents.h @@ -11,7 +11,7 @@ * Hypervisor events definitions. */ -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE HYP_EVENT(func, HE_PROTO(unsigned long ip, unsigned long parent), HE_STRUCT( diff --git a/arch/arm64/kernel/image-vars.h b/arch/arm64/kernel/image-vars.h index 1b3d1ba6cf58..580b6a0b15b3 100644 --- a/arch/arm64/kernel/image-vars.h +++ b/arch/arm64/kernel/image-vars.h @@ -140,7 +140,7 @@ KVM_NVHE_ALIAS(__hyp_rodata_end); KVM_NVHE_ALIAS(__hyp_event_ids_start); KVM_NVHE_ALIAS(__hyp_event_ids_end); KVM_NVHE_ALIAS(__hyp_printk_fmts_start); -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE KVM_NVHE_ALIAS(__hyp_patchable_function_entries_start); KVM_NVHE_ALIAS(__hyp_patchable_function_entries_end); #endif diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index 7763b3a944c2..d5454e3fc2f7 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -122,7 +122,7 @@ config PTDUMP_STAGE2_DEBUGFS If in doubt, say N. -config PROTECTED_NVHE_FTRACE +config PKVM_FTRACE bool "Protected KVM hypervisor function tracing" depends on KVM depends on TRACING diff --git a/arch/arm64/kvm/hyp/hyp-entry.S b/arch/arm64/kvm/hyp/hyp-entry.S index f55f57f7fd84..9e327b85c628 100644 --- a/arch/arm64/kvm/hyp/hyp-entry.S +++ b/arch/arm64/kvm/hyp/hyp-entry.S @@ -263,7 +263,7 @@ SYM_CODE_START(__bp_harden_hyp_vecs) .org 1b SYM_CODE_END(__bp_harden_hyp_vecs) -#if defined(__KVM_NVHE_HYPERVISOR__) && defined(CONFIG_PROTECTED_NVHE_FTRACE) +#if defined(__KVM_NVHE_HYPERVISOR__) && defined(CONFIG_PKVM_FTRACE) SYM_FUNC_START(__hyp_ftrace_tramp) stp x0, x1, [sp, #-16]! stp x2, x3, [sp, #-16]! diff --git a/arch/arm64/kvm/hyp/include/module/nvhe/trace.h b/arch/arm64/kvm/hyp/include/module/nvhe/trace.h index bec5ef2ed28e..52372272e6bd 100644 --- a/arch/arm64/kvm/hyp/include/module/nvhe/trace.h +++ b/arch/arm64/kvm/hyp/include/module/nvhe/trace.h @@ -82,7 +82,7 @@ do { \ #define trace_hyp_printk(fmt, ...) \ __trace_hyp_printk_N(fmt, __VA_ARGS__) -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE void hyp_ftrace_setup_core(void); unsigned long *hyp_ftrace_find_host_func(unsigned long host_func, unsigned long *funcs, @@ -106,7 +106,7 @@ static inline void hyp_ftrace_enable(unsigned long *funcs, unsigned long *funcs_ bool enable, void *tramp) { } static inline int __pkvm_sync_ftrace(unsigned long host_func_pg) { return -EOPNOTSUPP; } static inline int __pkvm_disable_ftrace(void) { return -EOPNOTSUPP; } -#endif /* CONFIG_PROTECTED_NVHE_FTRACE */ +#endif /* CONFIG_PKVM_FTRACE */ #else /* CONFIG_TRACING */ static inline int register_hyp_mod_events(void *event_ids, size_t nr_events, void *funcs, void *funcs_end, diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile b/arch/arm64/kvm/hyp/nvhe/Makefile index d3157145c685..88201b2b5bd0 100644 --- a/arch/arm64/kvm/hyp/nvhe/Makefile +++ b/arch/arm64/kvm/hyp/nvhe/Makefile @@ -14,7 +14,7 @@ hyp-obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \ ../../../kernel/smccc-call.o hyp-obj-$(CONFIG_LIST_HARDENED) += list_debug.o hyp-obj-$(CONFIG_TRACING) += clock.o events.o trace.o -hyp-obj-$(CONFIG_PROTECTED_NVHE_FTRACE) += ftrace.o +hyp-obj-$(CONFIG_PKVM_FTRACE) += ftrace.o hyp-obj-$(CONFIG_MODULES) += modules.o hyp-obj-y += $(lib-objs) diff --git a/arch/arm64/kvm/hyp/nvhe/Makefile.nvhe b/arch/arm64/kvm/hyp/nvhe/Makefile.nvhe index 582d0fcb084b..442d60b6a2e3 100644 --- a/arch/arm64/kvm/hyp/nvhe/Makefile.nvhe +++ b/arch/arm64/kvm/hyp/nvhe/Makefile.nvhe @@ -14,7 +14,7 @@ ccflags-y += -fno-stack-protector \ -DDISABLE_BRANCH_PROFILING \ $(DISABLE_STACKLEAK_PLUGIN) -ifeq ($(CONFIG_PROTECTED_NVHE_FTRACE), y) +ifeq ($(CONFIG_PKVM_FTRACE), y) ccflags-y += -fpatchable-function-entry=3 endif diff --git a/arch/arm64/kvm/hyp/nvhe/events.c b/arch/arm64/kvm/hyp/nvhe/events.c index d0c6793f5a4f..f9de4e709811 100644 --- a/arch/arm64/kvm/hyp/nvhe/events.c +++ b/arch/arm64/kvm/hyp/nvhe/events.c @@ -29,7 +29,7 @@ static struct { } funcs; } hyp_mod_events[MAX_MOD_EVENTS]; -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE int __pkvm_sync_ftrace(unsigned long host_funcs_pg) { unsigned long *funcs_pg = (unsigned long *)kern_hyp_va(host_funcs_pg); diff --git a/arch/arm64/kvm/hyp/nvhe/module.lds.S b/arch/arm64/kvm/hyp/nvhe/module.lds.S index f91ec53c0e5d..056132559cab 100644 --- a/arch/arm64/kvm/hyp/nvhe/module.lds.S +++ b/arch/arm64/kvm/hyp/nvhe/module.lds.S @@ -41,7 +41,7 @@ SECTIONS { *(__patchable_function_entries __patchable_function_entries.*) } -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE .hyp.text.ftrace_tramp : { . = . +20; } diff --git a/arch/arm64/kvm/hyp_events.c b/arch/arm64/kvm/hyp_events.c index f231a0150e0a..b7e195dc4d80 100644 --- a/arch/arm64/kvm/hyp_events.c +++ b/arch/arm64/kvm/hyp_events.c @@ -101,7 +101,7 @@ static const char *hyp_printk_fmt_from_id(u8 fmt_id) return fmt ? fmt->fmt : "Unknown Format"; } -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE extern unsigned long __hyp_patchable_function_entries_start[]; extern unsigned long __hyp_patchable_function_entries_end[]; extern unsigned long kvm_nvhe_sym(__hyp_text_start_kern); @@ -835,7 +835,7 @@ void hyp_trace_init_event_tracefs(struct dentry *parent) { int nr_events = nr_entries(__hyp_events_start, __hyp_events_end); -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE tracefs_create_file("set_ftrace_filter", 0600, parent, (void *)true, &hyp_ftrace_filter_fops); tracefs_create_file("set_ftrace_notrace", 0200, parent, (void *)false, diff --git a/arch/arm64/kvm/pkvm.c b/arch/arm64/kvm/pkvm.c index c53825f8f351..1cc169d6faab 100644 --- a/arch/arm64/kvm/pkvm.c +++ b/arch/arm64/kvm/pkvm.c @@ -1485,7 +1485,7 @@ EXPORT_SYMBOL(__pkvm_register_el2_call); void pkvm_el2_mod_frob_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings) { -#ifdef CONFIG_PROTECTED_NVHE_FTRACE +#ifdef CONFIG_PKVM_FTRACE int i; for (i = 0; i < ehdr->e_shnum; i++) {