Re: [PATCH v4 -next 14/15] sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c
Geert Uytterhoeven <[email protected]>
| Newsgroups | gmane.linux.ports.sh.devel,gmane.linux.kernel,gmane.linux.file-systems,gmane.linux.kernel.mm,gmane.linux.nfs,gmane.linux.network,gmane.linux.kernel.lsm |
|---|---|
| Message-ID | <CAMuHMdVHD+AhMpcyxndTno-ocatS1tRP5uRrKNFL6Z=j3KX8og@mail.gmail.com> |
Hi Kaixiong, On Sat, Dec 28, 2024 at 4:07 PM Kaixiong Yu <[email protected]> wrote: > When CONFIG_SUPERH and CONFIG_VSYSCALL are defined, > vdso_enabled belongs to arch/sh/kernel/vsyscall/vsyscall.c. > So, move it into its own file. After this patch is applied, > all sysctls of vm_table would be moved. So, delete vm_table. > > Signed-off-by: Kaixiong Yu <[email protected]> > Reviewed-by: Kees Cook <[email protected]> > --- > v4: > - const qualify struct ctl_table vdso_table Thanks for your patch! I gave this a try on landisk, and /proc/sys/vm/vdso_enabled disappeared. > --- a/arch/sh/kernel/vsyscall/vsyscall.c > +++ b/arch/sh/kernel/vsyscall/vsyscall.c > @@ -55,6 +67,8 @@ int __init vsyscall_init(void) > &vsyscall_trapa_start, > &vsyscall_trapa_end - &vsyscall_trapa_start); > > + register_sysctl_init("vm", vdso_table); "failed when register_sysctl_sz vdso_table to vm" Adding some debug prints shows that kzalloc() in __register_sysctl_table() fails, presumably because it is called too early in the boot process. > + > return 0; > } Moving the call to register_sysctl_init() into its own fs_initcall(), like the gmail-whitespace-damaged patch below, fixes that. --- a/arch/sh/kernel/vsyscall/vsyscall.c +++ b/arch/sh/kernel/vsyscall/vsyscall.c @@ -67,11 +67,17 @@ int __init vsyscall_init(void) &vsyscall_trapa_start, &vsyscall_trapa_end - &vsyscall_trapa_start); - register_sysctl_init("vm", vdso_table); + return 0; +} +static int __init vm_sysctl_init(void) +{ + register_sysctl_init("vm", vdso_table); return 0; } +fs_initcall(vm_sysctl_init); + /* Setup a VMA at program startup for the vsyscall page */ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds