Re: [PATCH v4 -next 14/15] sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kaixiong,

On Sat, Dec 28, 2024 at 4:07 PM Kaixiong Yu <yukaixiong@xxxxxxxxxx> 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 <yukaixiong@xxxxxxxxxx>
> Reviewed-by: Kees Cook <kees@xxxxxxxxxx>
> ---
> 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 -- geert@xxxxxxxxxxxxxx

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





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux