Re: [PATCH v4 -next 06/15] mm: mmap: move sysctl to mm/mmap.c
yukaixiong <[email protected]>
| Newsgroups | gmane.linux.kernel.lsm,gmane.linux.ports.sh.devel,gmane.linux.kernel,gmane.linux.file-systems,gmane.linux.kernel.mm,gmane.linux.nfs,gmane.linux.network |
|---|---|
| Message-ID | <[email protected]> |
On 2025/1/2 22:08, Lorenzo Stoakes wrote: > On Mon, Dec 23, 2024 at 10:15:25PM +0800, Kaixiong Yu wrote: >> This moves all mmap related sysctls to mm/mmap.c, as part of the >> kernel/sysctl.c cleaning, also move the variable declaration from >> kernel/sysctl.c into mm/mmap.c. >> >> Signed-off-by: Kaixiong Yu <[email protected]> >> Reviewed-by: Kees Cook <[email protected]> > Looks good to me, thanks! > > Reviewed-by: Lorenzo Stoakes <[email protected]> Thanks for your review! Best ... >> --- >> v4: >> - const qualify struct ctl_table mmap_table >> v3: >> - change the title >> v2: >> - fix sysctl_max_map_count undeclared issue in mm/nommu.c >> --- >> --- >> kernel/sysctl.c | 50 +-------------------------------------------- >> mm/mmap.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 55 insertions(+), 49 deletions(-) >> >> diff --git a/kernel/sysctl.c b/kernel/sysctl.c >> index aea3482106e0..9c245898f535 100644 >> --- a/kernel/sysctl.c >> +++ b/kernel/sysctl.c >> @@ -127,12 +127,6 @@ enum sysctl_writes_mode { >> >> static enum sysctl_writes_mode sysctl_writes_strict = SYSCTL_WRITES_STRICT; >> #endif /* CONFIG_PROC_SYSCTL */ >> - >> -#if defined(HAVE_ARCH_PICK_MMAP_LAYOUT) || \ >> - defined(CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT) >> -int sysctl_legacy_va_layout; >> -#endif >> - >> #endif /* CONFIG_SYSCTL */ >> >> /* >> @@ -2037,16 +2031,7 @@ static struct ctl_table vm_table[] = { >> .extra1 = SYSCTL_ONE, >> .extra2 = SYSCTL_FOUR, >> }, >> -#ifdef CONFIG_MMU >> - { >> - .procname = "max_map_count", >> - .data = &sysctl_max_map_count, >> - .maxlen = sizeof(sysctl_max_map_count), >> - .mode = 0644, >> - .proc_handler = proc_dointvec_minmax, >> - .extra1 = SYSCTL_ZERO, >> - }, >> -#else >> +#ifndef CONFIG_MMU >> { >> .procname = "nr_trim_pages", >> .data = &sysctl_nr_trim_pages, >> @@ -2064,17 +2049,6 @@ static struct ctl_table vm_table[] = { >> .proc_handler = proc_dointvec_minmax, >> .extra1 = SYSCTL_ZERO, >> }, > Nitty, but this bit belongs in mm/nommu.c? > >> -#if defined(HAVE_ARCH_PICK_MMAP_LAYOUT) || \ >> - defined(CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT) >> - { >> - .procname = "legacy_va_layout", >> - .data = &sysctl_legacy_va_layout, >> - .maxlen = sizeof(sysctl_legacy_va_layout), >> - .mode = 0644, >> - .proc_handler = proc_dointvec_minmax, >> - .extra1 = SYSCTL_ZERO, >> - }, >> -#endif >> #ifdef CONFIG_MMU >> { >> .procname = "mmap_min_addr", >> @@ -2100,28 +2074,6 @@ static struct ctl_table vm_table[] = { >> .extra1 = SYSCTL_ZERO, >> }, >> #endif >> -#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS >> - { >> - .procname = "mmap_rnd_bits", >> - .data = &mmap_rnd_bits, >> - .maxlen = sizeof(mmap_rnd_bits), >> - .mode = 0600, >> - .proc_handler = proc_dointvec_minmax, >> - .extra1 = (void *)&mmap_rnd_bits_min, >> - .extra2 = (void *)&mmap_rnd_bits_max, >> - }, >> -#endif >> -#ifdef CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS >> - { >> - .procname = "mmap_rnd_compat_bits", >> - .data = &mmap_rnd_compat_bits, >> - .maxlen = sizeof(mmap_rnd_compat_bits), >> - .mode = 0600, >> - .proc_handler = proc_dointvec_minmax, >> - .extra1 = (void *)&mmap_rnd_compat_bits_min, >> - .extra2 = (void *)&mmap_rnd_compat_bits_max, >> - }, >> -#endif >> }; >> >> int __init sysctl_init_bases(void) >> diff --git a/mm/mmap.c b/mm/mmap.c >> index aef835984b1c..cc579aafd7ba 100644 >> --- a/mm/mmap.c >> +++ b/mm/mmap.c >> @@ -1603,6 +1603,57 @@ struct vm_area_struct *_install_special_mapping( >> &special_mapping_vmops); >> } >> >> +#ifdef CONFIG_SYSCTL >> +#if defined(HAVE_ARCH_PICK_MMAP_LAYOUT) || \ >> + defined(CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT) >> +int sysctl_legacy_va_layout; >> +#endif >> + >> +static const struct ctl_table mmap_table[] = { >> + { >> + .procname = "max_map_count", >> + .data = &sysctl_max_map_count, >> + .maxlen = sizeof(sysctl_max_map_count), >> + .mode = 0644, >> + .proc_handler = proc_dointvec_minmax, >> + .extra1 = SYSCTL_ZERO, >> + }, >> +#if defined(HAVE_ARCH_PICK_MMAP_LAYOUT) || \ >> + defined(CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT) >> + { >> + .procname = "legacy_va_layout", >> + .data = &sysctl_legacy_va_layout, >> + .maxlen = sizeof(sysctl_legacy_va_layout), >> + .mode = 0644, >> + .proc_handler = proc_dointvec_minmax, >> + .extra1 = SYSCTL_ZERO, >> + }, >> +#endif >> +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS >> + { >> + .procname = "mmap_rnd_bits", >> + .data = &mmap_rnd_bits, >> + .maxlen = sizeof(mmap_rnd_bits), >> + .mode = 0600, >> + .proc_handler = proc_dointvec_minmax, >> + .extra1 = (void *)&mmap_rnd_bits_min, >> + .extra2 = (void *)&mmap_rnd_bits_max, >> + }, >> +#endif >> +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS >> + { >> + .procname = "mmap_rnd_compat_bits", >> + .data = &mmap_rnd_compat_bits, >> + .maxlen = sizeof(mmap_rnd_compat_bits), >> + .mode = 0600, >> + .proc_handler = proc_dointvec_minmax, >> + .extra1 = (void *)&mmap_rnd_compat_bits_min, >> + .extra2 = (void *)&mmap_rnd_compat_bits_max, >> + }, >> +#endif >> +}; >> +#endif /* CONFIG_SYSCTL */ >> + >> /* >> * initialise the percpu counter for VM >> */ >> @@ -1612,6 +1663,9 @@ void __init mmap_init(void) >> >> ret = percpu_counter_init(&vm_committed_as, 0, GFP_KERNEL); >> VM_BUG_ON(ret); >> +#ifdef CONFIG_SYSCTL >> + register_sysctl_init("vm", mmap_table); >> +#endif >> } >> >> /* >> -- >> 2.34.1 >> > . >