Re: [PATCH v4 -next 14/15] sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c
yukaixiong <[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 | <[email protected]> |
On 2025/1/3 19:11, Geert Uytterhoeven wrote: > 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 Thank you so much for your test and fix patch ! I will fix it in patches series v5. Best ...