[tip: perf/core] perf: Use EXPORT_SYMBOL_FOR_KVM() for the mediated APIs

From: tip-bot2 for Peter Zijlstra

Date: Fri Dec 19 2025 - 02:58:57 EST


The following commit has been merged into the perf/core branch of tip:

Commit-ID: 01122b89361e565b3c88b9fbebe92dc5c7420cb7
Gitweb: https://git.kernel.org/tip/01122b89361e565b3c88b9fbebe92dc5c7420cb7
Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
AuthorDate: Wed, 17 Dec 2025 13:23:59 +01:00
Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
CommitterDate: Fri, 19 Dec 2025 08:54:59 +01:00

perf: Use EXPORT_SYMBOL_FOR_KVM() for the mediated APIs

Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Link: https://patch.msgid.link/20251208115156.GE3707891@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
---
arch/x86/events/core.c | 5 +++--
include/asm-generic/Kbuild | 1 +
kernel/events/core.c | 5 +++--
3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index df7a32b..0ecac94 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -30,6 +30,7 @@
#include <linux/device.h>
#include <linux/nospec.h>
#include <linux/static_call.h>
+#include <linux/kvm_types.h>

#include <asm/apic.h>
#include <asm/stacktrace.h>
@@ -1771,14 +1772,14 @@ void perf_load_guest_lvtpc(u32 guest_lvtpc)
APIC_DM_FIXED | PERF_GUEST_MEDIATED_PMI_VECTOR | masked);
this_cpu_write(guest_lvtpc_loaded, true);
}
-EXPORT_SYMBOL_FOR_MODULES(perf_load_guest_lvtpc, "kvm");
+EXPORT_SYMBOL_FOR_KVM(perf_load_guest_lvtpc);

void perf_put_guest_lvtpc(void)
{
this_cpu_write(guest_lvtpc_loaded, false);
apic_write(APIC_LVTPC, APIC_DM_NMI);
}
-EXPORT_SYMBOL_FOR_MODULES(perf_put_guest_lvtpc, "kvm");
+EXPORT_SYMBOL_FOR_KVM(perf_put_guest_lvtpc);
#endif /* CONFIG_PERF_GUEST_MEDIATED_PMU */

static int
diff --git a/include/asm-generic/Kbuild b/include/asm-generic/Kbuild
index 295c94a..9aff61e 100644
--- a/include/asm-generic/Kbuild
+++ b/include/asm-generic/Kbuild
@@ -32,6 +32,7 @@ mandatory-y += irq_work.h
mandatory-y += kdebug.h
mandatory-y += kmap_size.h
mandatory-y += kprobes.h
+mandatory-y += kvm_types.h
mandatory-y += linkage.h
mandatory-y += local.h
mandatory-y += local64.h
diff --git a/kernel/events/core.c b/kernel/events/core.c
index e6a4b1e..376fb07 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -57,6 +57,7 @@
#include <linux/task_work.h>
#include <linux/percpu-rwsem.h>
#include <linux/unwind_deferred.h>
+#include <linux/kvm_types.h>

#include "internal.h"

@@ -6388,7 +6389,7 @@ int perf_create_mediated_pmu(void)
atomic_inc(&nr_mediated_pmu_vms);
return 0;
}
-EXPORT_SYMBOL_GPL(perf_create_mediated_pmu);
+EXPORT_SYMBOL_FOR_KVM(perf_create_mediated_pmu);

void perf_release_mediated_pmu(void)
{
@@ -6397,7 +6398,7 @@ void perf_release_mediated_pmu(void)

atomic_dec(&nr_mediated_pmu_vms);
}
-EXPORT_SYMBOL_GPL(perf_release_mediated_pmu);
+EXPORT_SYMBOL_FOR_KVM(perf_release_mediated_pmu);

/* When loading a guest's mediated PMU, schedule out all exclude_guest events. */
void perf_load_guest_context(void)