hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8SA3O
----------------------------------------------------------------------
Reserve KABI for future namespace development.
Signed-off-by: Chen Ridong chenridong@huawei.com --- include/linux/ipc_namespace.h | 1 + include/linux/nsproxy.h | 4 ++++ include/linux/pid_namespace.h | 4 ++++ include/linux/user_namespace.h | 9 +++++++++ kernel/ucount.c | 6 ++++++ 5 files changed, 24 insertions(+)
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index e8240cf2611a..d8e407131d88 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h @@ -12,6 +12,7 @@ #include <linux/rhashtable-types.h> #include <linux/sysctl.h> #include <linux/percpu_counter.h> +#include <linux/kabi.h>
struct user_namespace;
diff --git a/include/linux/nsproxy.h b/include/linux/nsproxy.h index 771cb0285872..b5839c1b7667 100644 --- a/include/linux/nsproxy.h +++ b/include/linux/nsproxy.h @@ -4,6 +4,7 @@
#include <linux/spinlock.h> #include <linux/sched.h> +#include <linux/kabi.h>
struct mnt_namespace; struct uts_namespace; @@ -38,6 +39,9 @@ struct nsproxy { struct time_namespace *time_ns; struct time_namespace *time_ns_for_children; struct cgroup_namespace *cgroup_ns; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) }; extern struct nsproxy init_nsproxy;
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index 0a7c6dab0b7b..7ab8c213f13b 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h @@ -10,6 +10,7 @@ #include <linux/nsproxy.h> #include <linux/ns_common.h> #include <linux/idr.h> +#include <linux/kabi.h>
/* MAX_PID_NS_LEVEL is needed for limiting size of 'struct pid' */ #define MAX_PID_NS_LEVEL 32 @@ -44,6 +45,9 @@ struct pid_namespace { #if defined(CONFIG_SYSCTL) && defined(CONFIG_MEMFD_CREATE) int memfd_noexec_scope; #endif + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) } __randomize_layout;
extern struct pid_namespace init_pid_ns; diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index 45f09bec02c4..b31118e83450 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h @@ -10,6 +10,7 @@ #include <linux/rwsem.h> #include <linux/sysctl.h> #include <linux/err.h> +#include <linux/kabi.h>
#define UID_GID_MAP_MAX_BASE_EXTENTS 5 #define UID_GID_MAP_MAX_EXTENTS 340 @@ -53,6 +54,11 @@ enum ucount_type { #ifdef CONFIG_FANOTIFY UCOUNT_FANOTIFY_GROUPS, UCOUNT_FANOTIFY_MARKS, +#endif +#ifdef CONFIG_KABI_RESERVE + UCOUNT_KABI_RESERVE1, + UCOUNT_KABI_RESERVE2, + UCOUNT_KABI_RESERVE3, #endif UCOUNT_COUNTS, }; @@ -102,6 +108,9 @@ struct user_namespace { struct ucounts *ucounts; long ucount_max[UCOUNT_COUNTS]; long rlimit_max[UCOUNT_RLIMIT_COUNTS]; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) } __randomize_layout;
struct ucounts { diff --git a/kernel/ucount.c b/kernel/ucount.c index 4aa6166cb856..210eb082869d 100644 --- a/kernel/ucount.c +++ b/kernel/ucount.c @@ -86,6 +86,12 @@ static struct ctl_table user_table[] = { #ifdef CONFIG_FANOTIFY UCOUNT_ENTRY("max_fanotify_groups"), UCOUNT_ENTRY("max_fanotify_marks"), +#endif +#ifdef CONFIG_KABI_RESERVE + /* These corresponds to the reservation in enum ucount_type */ + { }, // UCOUNT_KABI_RESERVE1 + { }, // UCOUNT_KABI_RESERVE2 + { }, // UCOUNT_KABI_RESERVE3 #endif { } };