This commit more or less reverts commit 709c4362725a ("cacheinfo: Move resctrl's get_cache_id() to the cacheinfo header file"). There are no users of the static inline helper outside of resctrl/core.c and cpu.h is a pretty heavy include, it pulls in device.h etc. This trips up architectures like riscv which want to access cacheinfo in low level headers like elf.h. Link: https://lore.kernel.org/all/20211120035253.72074-1-kuba@xxxxxxxxxx/ Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> --- CC: fenghua.yu@xxxxxxxxx CC: reinette.chatre@xxxxxxxxx CC: tglx@xxxxxxxxxxxxx CC: mingo@xxxxxxxxxx CC: bp@xxxxxxxxx CC: dave.hansen@xxxxxxxxxxxxxxx CC: x86@xxxxxxxxxx CC: hpa@xxxxxxxxx CC: paul.walmsley@xxxxxxxxxx CC: palmer@xxxxxxxxxxx CC: aou@xxxxxxxxxxxxxxxxx CC: peterz@xxxxxxxxxxxxx CC: will@xxxxxxxxxx CC: linux-riscv@xxxxxxxxxxxxxxxxxxx x86 resctrl folks, does this look okay? I'd like to do some bpf header cleanups in -next which this is blocking. How would you like to handle that? This change looks entirely harmless, can I get an ack and take this via bpf/netdev to Linus ASAP so it propagates to all trees? --- arch/x86/kernel/cpu/resctrl/core.c | 20 ++++++++++++++++++++ include/linux/cacheinfo.h | 21 --------------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c index bb1c3f5f60c8..3c0b2c34be23 100644 --- a/arch/x86/kernel/cpu/resctrl/core.c +++ b/arch/x86/kernel/cpu/resctrl/core.c @@ -284,6 +284,26 @@ static void rdt_get_cdp_l2_config(void) rdt_get_cdp_config(RDT_RESOURCE_L2); } +/* + * Get the id of the cache associated with @cpu at level @level. + * cpuhp lock must be held. + */ +static int get_cpu_cacheinfo_id(int cpu, int level) +{ + struct cpu_cacheinfo *ci = get_cpu_cacheinfo(cpu); + int i; + + for (i = 0; i < ci->num_leaves; i++) { + if (ci->info_list[i].level == level) { + if (ci->info_list[i].attributes & CACHE_ID) + return ci->info_list[i].id; + return -1; + } + } + + return -1; +} + static void mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r) { diff --git a/include/linux/cacheinfo.h b/include/linux/cacheinfo.h index 2f909ed084c6..c8c71eea237d 100644 --- a/include/linux/cacheinfo.h +++ b/include/linux/cacheinfo.h @@ -3,7 +3,6 @@ #define _LINUX_CACHEINFO_H #include <linux/bitops.h> -#include <linux/cpu.h> #include <linux/cpumask.h> #include <linux/smp.h> @@ -102,24 +101,4 @@ int acpi_find_last_cache_level(unsigned int cpu); const struct attribute_group *cache_get_priv_group(struct cacheinfo *this_leaf); -/* - * Get the id of the cache associated with @cpu at level @level. - * cpuhp lock must be held. - */ -static inline int get_cpu_cacheinfo_id(int cpu, int level) -{ - struct cpu_cacheinfo *ci = get_cpu_cacheinfo(cpu); - int i; - - for (i = 0; i < ci->num_leaves; i++) { - if (ci->info_list[i].level == level) { - if (ci->info_list[i].attributes & CACHE_ID) - return ci->info_list[i].id; - return -1; - } - } - - return -1; -} - #endif /* _LINUX_CACHEINFO_H */ -- 2.31.1