Re: [PATCH mm-unstable] kernel/pid_sysctl.h: Add missing definitions for specific config
From: Jeff Xu
Date: Fri Dec 16 2022 - 13:42:09 EST
Hi SeongJae
Thank you for fixing this.
Do I need to send v9 of the original patch ?
On Fri, Dec 16, 2022 at 10:33 AM SeongJae Park <sj@xxxxxxxxxx> wrote:
>
> Commit bdb6231e88a3 ("mm/memfd: add MFD_NOEXEC_SEAL and MFD_EXEC") on
> mm-unstable when CONFIG_SYSCTL or CONFIG_MEMFD_CRETE not defined, as
> below, because initialize_memfd_noexec_scope() and
> register_pid_ns_sysctl_table_vm(), which defined by the commit, is not
> defined for the config case.
>
> ERROR:root:/kernel/pid_namespace.c: In function ‘create_pid_namespace’:
> /kernel/pid_namespace.c:114:2: error: implicit declaration of function ‘initialize_memfd_noexec_scope’; did you mean ‘set_memfd_noexec_scope’? [-Werror=implicit-function-declaration]
> 114 | initialize_memfd_noexec_scope(ns);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | set_memfd_noexec_scope
> /kernel/pid_namespace.c: In function ‘pid_namespaces_init’:
> /kernel/pid_namespace.c:462:2: error: implicit declaration of function ‘register_pid_ns_sysctl_table_vm’; did you mean ‘register_pid_ns_ctl_table_vm’? [-Werror=implicit-function-declaration]
> 462 | register_pid_ns_sysctl_table_vm();
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | register_pid_ns_ctl_table_vm
> cc1: some warnings being treated as errors
> make[3]: *** [/scripts/Makefile.build:250: kernel/pid_namespace.o] Error 1
>
> Fix the commit by defining the functions for the configuration.
>
> Fixes: bdb6231e88a3 ("mm/memfd: add MFD_NOEXEC_SEAL and MFD_EXEC") on mm-unstable
> Signed-off-by: SeongJae Park <sj@xxxxxxxxxx>
> ---
> kernel/pid_sysctl.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/kernel/pid_sysctl.h b/kernel/pid_sysctl.h
> index 90a93161a122..770c060a0d33 100644
> --- a/kernel/pid_sysctl.h
> +++ b/kernel/pid_sysctl.h
> @@ -52,8 +52,10 @@ static inline void register_pid_ns_sysctl_table_vm(void)
> register_sysctl_paths(vm_path, pid_ns_ctl_table_vm);
> }
> #else
> +static inline void initialize_memfd_noexec_scope(struct pid_namespace *ns) {}
> static inline void set_memfd_noexec_scope(struct pid_namespace *ns) {}
> static inline void register_pid_ns_ctl_table_vm(void) {}
register_pid_ns_ctl_table_vm can be removed.
Thanks
Jeff
+static inline void register_pid_ns_sysctl_table_vm(void) {}
> #endif
>
> #endif /* LINUX_PID_SYSCTL_H */
> --
> 2.25.1
>