| From: Thomas Weißschuh <linux@weissschuh.net> |
| Subject: mm: make MEMFD_CREATE into a selectable config option |
| Date: Fri, 30 Jun 2023 11:08:53 +0200 |
| |
| The memfd_create() syscall, enabled by CONFIG_MEMFD_CREATE, is useful on |
| its own even when not required by CONFIG_TMPFS or CONFIG_HUGETLBFS. |
| |
| Split it into its own proper bool option that can be enabled by users. |
| |
| Move that option into mm/ where the code itself also lies. Also add |
| "select" statements to CONFIG_TMPFS and CONFIG_HUGETLBFS so they |
| automatically enable CONFIG_MEMFD_CREATE as before. |
| |
| Link: https://lkml.kernel.org/r/20230630-config-memfd-v1-1-9acc3ae38b5a@weissschuh.net |
| Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> |
| Tested-by: Zhangjin Wu <falcon@tinylab.org> |
| Cc: Al Viro <viro@zeniv.linux.org.uk> |
| Cc: Christian Brauner <brauner@kernel.org> |
| Cc: Darrick J. Wong <djwong@kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| fs/Kconfig | 5 ++--- |
| mm/Kconfig | 3 +++ |
| 2 files changed, 5 insertions(+), 3 deletions(-) |
| |
| --- a/fs/Kconfig~mm-make-memfd_create-into-a-selectable-config-option |
| +++ a/fs/Kconfig |
| @@ -169,6 +169,7 @@ source "fs/sysfs/Kconfig" |
| config TMPFS |
| bool "Tmpfs virtual memory file system support (former shm fs)" |
| depends on SHMEM |
| + select MEMFD_CREATE |
| help |
| Tmpfs is a file system which keeps all files in virtual memory. |
| |
| @@ -240,6 +241,7 @@ config HUGETLBFS |
| bool "HugeTLB file system support" |
| depends on X86 || IA64 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN |
| depends on (SYSFS || SYSCTL) |
| + select MEMFD_CREATE |
| help |
| hugetlbfs is a filesystem backing for HugeTLB pages, based on |
| ramfs. For architectures that support it, say Y here and read |
| @@ -264,9 +266,6 @@ config HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEF |
| enable HVO by default. It can be disabled via hugetlb_free_vmemmap=off |
| (boot command line) or hugetlb_optimize_vmemmap (sysctl). |
| |
| -config MEMFD_CREATE |
| - def_bool TMPFS || HUGETLBFS |
| - |
| config ARCH_HAS_GIGANTIC_PAGE |
| bool |
| |
| --- a/mm/Kconfig~mm-make-memfd_create-into-a-selectable-config-option |
| +++ a/mm/Kconfig |
| @@ -1144,6 +1144,9 @@ config KMAP_LOCAL_NON_LINEAR_PTE_ARRAY |
| config IO_MAPPING |
| bool |
| |
| +config MEMFD_CREATE |
| + bool "Enable memfd_create() system call" if EXPERT |
| + |
| config SECRETMEM |
| default y |
| bool "Enable memfd_secret() system call" if EXPERT |
| _ |