summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2018-09-04 12:07:55 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-04-20 09:16:00 +0200
commit1f2b1c6ab3532e47718ca51b6201912634ed5786 (patch)
treecb2f137ef7bb5a584935b92cf200309b8083477c /include
parent14b183214c08ba2dcd4fee8017879a1ad6f8f0e6 (diff)
downloadlinux-stable-1f2b1c6ab3532e47718ca51b6201912634ed5786.tar.gz
linux-stable-1f2b1c6ab3532e47718ca51b6201912634ed5786.tar.bz2
linux-stable-1f2b1c6ab3532e47718ca51b6201912634ed5786.zip
netfilter: xt_cgroup: shrink size of v2 path
[ Upstream commit 0d704967f4a49cc2212350b3e4a8231f8b4283ed ] cgroup v2 path field is PATH_MAX which is too large, this is placing too much pressure on memory allocation for people with many rules doing cgroup v1 classid matching, side effects of this are bug reports like: https://bugzilla.kernel.org/show_bug.cgi?id=200639 This patch registers a new revision that shrinks the cgroup path to 512 bytes, which is the same approach we follow in similar extensions that have a path field. Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/uapi/linux/netfilter/xt_cgroup.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/uapi/linux/netfilter/xt_cgroup.h b/include/uapi/linux/netfilter/xt_cgroup.h
index e96dfa1b34f7..b74e370d6133 100644
--- a/include/uapi/linux/netfilter/xt_cgroup.h
+++ b/include/uapi/linux/netfilter/xt_cgroup.h
@@ -22,4 +22,20 @@ struct xt_cgroup_info_v1 {
void *priv __attribute__((aligned(8)));
};
+#define XT_CGROUP_PATH_MAX 512
+
+struct xt_cgroup_info_v2 {
+ __u8 has_path;
+ __u8 has_classid;
+ __u8 invert_path;
+ __u8 invert_classid;
+ union {
+ char path[XT_CGROUP_PATH_MAX];
+ __u32 classid;
+ };
+
+ /* kernel internal data */
+ void *priv __attribute__((aligned(8)));
+};
+
#endif /* _UAPI_XT_CGROUP_H */