lib/alloc_tag: do not register sysctl interface when CONFIG_SYSCTL=n
Memory allocation profiling is trying to register sysctl interface even
when CONFIG_SYSCTL=n, resulting in proc_do_static_key() being undefined.
Prevent that by skipping sysctl registration for such configurations.
Link: https://lkml.kernel.org/r/20240601233831.617124-1-surenb@google.com
Fixes: 22d407b164
("lib: add allocation tagging support for memory allocation profiling")
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202405280616.wcOGWJEj-lkp@intel.com/
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Kees Cook <keescook@chromium.org>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
3ab85f4046
commit
c944bf60c1
@ -227,6 +227,7 @@ struct page_ext_operations page_alloc_tagging_ops = {
|
||||
};
|
||||
EXPORT_SYMBOL(page_alloc_tagging_ops);
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
static struct ctl_table memory_allocation_profiling_sysctls[] = {
|
||||
{
|
||||
.procname = "mem_profiling",
|
||||
@ -241,6 +242,17 @@ static struct ctl_table memory_allocation_profiling_sysctls[] = {
|
||||
{ }
|
||||
};
|
||||
|
||||
static void __init sysctl_init(void)
|
||||
{
|
||||
if (!mem_profiling_support)
|
||||
memory_allocation_profiling_sysctls[0].mode = 0444;
|
||||
|
||||
register_sysctl_init("vm", memory_allocation_profiling_sysctls);
|
||||
}
|
||||
#else /* CONFIG_SYSCTL */
|
||||
static inline void sysctl_init(void) {}
|
||||
#endif /* CONFIG_SYSCTL */
|
||||
|
||||
static int __init alloc_tag_init(void)
|
||||
{
|
||||
const struct codetag_type_desc desc = {
|
||||
@ -253,9 +265,7 @@ static int __init alloc_tag_init(void)
|
||||
if (IS_ERR(alloc_tag_cttype))
|
||||
return PTR_ERR(alloc_tag_cttype);
|
||||
|
||||
if (!mem_profiling_support)
|
||||
memory_allocation_profiling_sysctls[0].mode = 0444;
|
||||
register_sysctl_init("vm", memory_allocation_profiling_sysctls);
|
||||
sysctl_init();
|
||||
procfs_init();
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user