Hi, On Wed, Jan 22, 2025 at 02:20:09PM -0600, Babu Moger wrote: > resctrl_late_init() has the __init attribute, but some of the functions > called from it do not have the __init attribute. > > Add the __init attribute to all the functions in the call sequences to > maintain consistency throughout. (BTW, did you just find these cases by inspection, or were you getting build warnings? Even with CONFIG_DEBUG_SECTION_MISMATCH=y, I struggle to get build warnings about section mismatches on inlined functions. Even building with -fno-inline doesn't flag them all up (though I don't think this suppresses all inlining). If you have a way of tracking these cases down automatically, I'd be interested to know so that I can apply it elsewhere.) Cheers ---Dave > > Fixes: 6a445edce657 ("x86/intel_rdt/cqm: Add RDT monitoring initialization") > Fixes: def10853930a ("x86/intel_rdt: Add two new resources for L2 Code and Data Prioritization (CDP)") > Fixes: bd334c86b5d7 ("x86/resctrl: Add __init attribute to rdt_get_mon_l3_config()") > Suggested-by: Reinette Chatre <reinette.chatre@xxxxxxxxx> > Signed-off-by: Babu Moger <babu.moger@xxxxxxx> > --- [...] > diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c > index 3d1735ed8d1f..f0a331287979 100644 > --- a/arch/x86/kernel/cpu/resctrl/core.c > +++ b/arch/x86/kernel/cpu/resctrl/core.c > @@ -145,7 +145,7 @@ u32 resctrl_arch_system_num_rmid_idx(void) > * is always 20 on hsw server parts. The minimum cache bitmask length > * allowed for HSW server is always 2 bits. Hardcode all of them. > */ > -static inline void cache_alloc_hsw_probe(void) > +static inline __init void cache_alloc_hsw_probe(void) > { > struct rdt_hw_resource *hw_res = &rdt_resources_all[RDT_RESOURCE_L3]; > struct rdt_resource *r = &hw_res->r_resctrl; > @@ -277,7 +277,7 @@ static __init bool __rdt_get_mem_config_amd(struct rdt_resource *r) [...]