[PATCH v7 10/14] platform/x86/intel/pmt: Register enumeration functions with resctrl
From: Tony Luck
Date: Mon Jun 01 2026 - 15:57:44 EST
INTEL_PMT_TELEMETRY is a loadable module, but resctrl is built-in and cannot
call PMT functions directly. Register the telemetry enumeration function
pointers at pmt_telemetry module init, and unregister them at module exit.
Note that checkpatch complains about the #include of <asm/resctrl.h>.
This is needed rather than <linux/resctrl.h> to get the function stub
definitions when CONFIG_X86_CPU_RESCTRL=n.
Suggested-by: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
---
drivers/platform/x86/intel/pmt/telemetry.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/intel/pmt/telemetry.c b/drivers/platform/x86/intel/pmt/telemetry.c
index bdc7c24a3678..33c1f8e7022f 100644
--- a/drivers/platform/x86/intel/pmt/telemetry.c
+++ b/drivers/platform/x86/intel/pmt/telemetry.c
@@ -25,6 +25,8 @@
#include <linux/uaccess.h>
#include <linux/xarray.h>
+#include <asm/resctrl.h>
+
#include "class.h"
#define TELEM_SIZE_OFFSET 0x0
@@ -425,12 +427,21 @@ static struct auxiliary_driver pmt_telem_aux_driver = {
static int __init pmt_telem_init(void)
{
- return auxiliary_driver_register(&pmt_telem_aux_driver);
+ int ret;
+
+ ret = auxiliary_driver_register(&pmt_telem_aux_driver);
+ if (ret)
+ return ret;
+
+ intel_aet_register_enumeration(THIS_MODULE, intel_pmt_get_regions_by_feature,
+ intel_pmt_put_feature_group);
+ return 0;
}
module_init(pmt_telem_init);
static void __exit pmt_telem_exit(void)
{
+ intel_aet_unregister_enumeration();
auxiliary_driver_unregister(&pmt_telem_aux_driver);
xa_destroy(&telem_array);
}
--
2.54.0