mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 02:44:41 +01:00
alloc_tag: prevent enabling memory profiling if it was shut down
Memory profiling can be shut down due to reasons like a failure during initialization. When this happens, the user should not be able to re-enable it. Current sysctrl interface does not handle this properly and will allow re-enabling memory profiling. Fix this by checking for this condition during sysctrl write operation. Link: https://lkml.kernel.org/r/20250915212756.3998938-3-surenb@google.com Signed-off-by: Suren Baghdasaryan <surenb@google.com> Acked-by: Shakeel Butt <shakeel.butt@linux.dev> Acked-by: Usama Arif <usamaarif642@gmail.com> Cc: David Wang <00107082@163.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Kent Overstreet <kent.overstreet@linux.dev> Cc: Pasha Tatashin <pasha.tatashin@soleen.com> Cc: Sourav Panda <souravpanda@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
123bcf2842
commit
9e8a0bbb12
1 changed files with 15 additions and 1 deletions
|
|
@ -766,6 +766,20 @@ struct page_ext_operations page_alloc_tagging_ops = {
|
|||
EXPORT_SYMBOL(page_alloc_tagging_ops);
|
||||
|
||||
#ifdef CONFIG_SYSCTL
|
||||
/*
|
||||
* Not using proc_do_static_key() directly to prevent enabling profiling
|
||||
* after it was shut down.
|
||||
*/
|
||||
static int proc_mem_profiling_handler(const struct ctl_table *table, int write,
|
||||
void *buffer, size_t *lenp, loff_t *ppos)
|
||||
{
|
||||
if (!mem_profiling_support && write)
|
||||
return -EINVAL;
|
||||
|
||||
return proc_do_static_key(table, write, buffer, lenp, ppos);
|
||||
}
|
||||
|
||||
|
||||
static struct ctl_table memory_allocation_profiling_sysctls[] = {
|
||||
{
|
||||
.procname = "mem_profiling",
|
||||
|
|
@ -775,7 +789,7 @@ static struct ctl_table memory_allocation_profiling_sysctls[] = {
|
|||
#else
|
||||
.mode = 0644,
|
||||
#endif
|
||||
.proc_handler = proc_do_static_key,
|
||||
.proc_handler = proc_mem_profiling_handler,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue