cacheinfo: Export get_cpu_cacheinfo_id() for loadable modules

get_cpu_cacheinfo_id() is a static inline that requires get_cpu_cacheinfo(),
which is not exported. Modules that need to identify which cache instance
a CPU belongs to therefore cannot use it.

Move it out of line and export it.

Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Link: https://patch.msgid.link/20260828153002.10290-2-tony.luck@intel.com
This commit is contained in:
Qiuxu Zhuo 2026-08-28 08:29:56 -07:00 committed by Tony Luck
parent ba71d9b4e9
commit 179b100b45
2 changed files with 18 additions and 11 deletions

View File

@ -38,6 +38,23 @@ struct cpu_cacheinfo *get_cpu_cacheinfo(unsigned int cpu)
return ci_cacheinfo(cpu);
}
/**
* get_cpu_cacheinfo_id - Return the cache ID for a CPU and cache level
* @cpu: CPU number
* @level: Cache level
*
* The caller must hold the cpuhp lock.
*
* Return: Cache ID on success, or -1 if no matching cache exists.
*/
int get_cpu_cacheinfo_id(int cpu, int level)
{
struct cacheinfo *ci = get_cpu_cacheinfo_level(cpu, level);
return ci ? ci->id : -1;
}
EXPORT_SYMBOL_GPL(get_cpu_cacheinfo_id);
static inline bool cache_leaves_are_shared(struct cacheinfo *this_leaf,
struct cacheinfo *sib_leaf)
{

View File

@ -82,6 +82,7 @@ struct cpu_cacheinfo {
};
struct cpu_cacheinfo *get_cpu_cacheinfo(unsigned int cpu);
int get_cpu_cacheinfo_id(int cpu, int level);
int early_cache_level(unsigned int cpu);
int init_cache_level(unsigned int cpu);
int init_of_cache_level(unsigned int cpu);
@ -137,17 +138,6 @@ static inline struct cacheinfo *get_cpu_cacheinfo_level(int cpu, int level)
return NULL;
}
/*
* 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 cacheinfo *ci = get_cpu_cacheinfo_level(cpu, level);
return ci ? ci->id : -1;
}
#if defined(CONFIG_ARM64) || defined(CONFIG_ARM)
#define use_arch_cache_info() (true)
#else