diff --git a/arch/arm64/include/asm/mpam_sched.h b/arch/arm64/include/asm/mpam_sched.h index 31522efbf8e5a31c1e02469169dc2254c2c7a6d8..14638793e53e5db702d878404792e6746057a8c2 100644 --- a/arch/arm64/include/asm/mpam_sched.h +++ b/arch/arm64/include/asm/mpam_sched.h @@ -39,6 +39,8 @@ static inline void mpam_sched_in(void) __mpam_sched_in(); } +extern int __read_mostly mpam_enabled; + #else static inline void mpam_sched_in(void) {} diff --git a/arch/arm64/kernel/mpam.c b/arch/arm64/kernel/mpam.c index aa52e5896ac91be7466d8ac052b6908c844ae903..623e9f8d6d8e9fecd8e42023daea4e0f498abc14 100644 --- a/arch/arm64/kernel/mpam.c +++ b/arch/arm64/kernel/mpam.c @@ -1242,11 +1242,23 @@ static void mpam_domains_init(struct resctrl_resource *r) } } +int __read_mostly mpam_enabled; + +static int __init mpam_setup(char *str) +{ + mpam_enabled = 1; + return 1; +} +__setup("mpam", mpam_setup); + static int __init mpam_late_init(void) { struct resctrl_resource *r; int state, ret; + if (!mpam_enabled) + return 0; + if (!cpus_have_const_cap(ARM64_HAS_MPAM)) return -ENODEV;