-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 20ca1613f2e3..8024f760bbe1 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -892,6 +892,9 @@ struct sk_buff {
-
+diff -Naur linux-6.1.56.org/include/linux/skbuff.h linux-6.1.56/include/linux/skbuff.h
+--- linux-6.1.56.org/include/linux/skbuff.h 2023-10-06 14:57:07.000000000 +0200
++++ linux-6.1.56/include/linux/skbuff.h 2023-10-07 14:14:11.094115796 +0200
+@@ -901,6 +901,9 @@
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
unsigned long _nfct;
-+#endif
+ #endif
+#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
+ char layer7_flags[1];
- #endif
++#endif
unsigned int len,
data_len;
-diff --git a/include/net/netfilter/nf_conntrack.h b/include/net/netfilter/nf_conntrack.h
-index 6a2019aaa464..fecc0a5c4b04 100644
---- a/include/net/netfilter/nf_conntrack.h
-+++ b/include/net/netfilter/nf_conntrack.h
-@@ -121,6 +121,23 @@ struct nf_conn {
+ __u16 mac_len,
+diff -Naur linux-6.1.56.org/include/net/netfilter/nf_conntrack.h linux-6.1.56/include/net/netfilter/nf_conntrack.h
+--- linux-6.1.56.org/include/net/netfilter/nf_conntrack.h 2023-10-06 14:57:07.000000000 +0200
++++ linux-6.1.56/include/net/netfilter/nf_conntrack.h 2023-10-07 14:14:11.094115796 +0200
+@@ -121,6 +121,23 @@
/* Extensions */
struct nf_ct_ext *ext;
/* Storage reserved for other modules, must be the last member */
union nf_conntrack_proto proto;
};
-diff --git a/include/uapi/linux/netfilter/xt_layer7.h b/include/uapi/linux/netfilter/xt_layer7.h
-new file mode 100644
-index 000000000000..147cd6477858
---- /dev/null
-+++ b/include/uapi/linux/netfilter/xt_layer7.h
+diff -Naur linux-6.1.56.org/include/uapi/linux/netfilter/xt_layer7.h linux-6.1.56/include/uapi/linux/netfilter/xt_layer7.h
+--- linux-6.1.56.org/include/uapi/linux/netfilter/xt_layer7.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-6.1.56/include/uapi/linux/netfilter/xt_layer7.h 2023-10-07 14:14:11.094115796 +0200
@@ -0,0 +1,13 @@
+#ifndef _XT_LAYER7_H
+#define _XT_LAYER7_H
+};
+
+#endif /* _XT_LAYER7_H */
-diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
-index 4b8d04640ff3..9d2140704720 100644
---- a/net/netfilter/Kconfig
-+++ b/net/netfilter/Kconfig
-@@ -1401,6 +1401,26 @@ config NETFILTER_XT_MATCH_L2TP
+diff -Naur linux-6.1.56.org/net/netfilter/Kconfig linux-6.1.56/net/netfilter/Kconfig
+--- linux-6.1.56.org/net/netfilter/Kconfig 2023-10-06 14:57:07.000000000 +0200
++++ linux-6.1.56/net/netfilter/Kconfig 2023-10-07 14:14:11.094115796 +0200
+@@ -1401,6 +1401,26 @@
To compile it as a module, choose M here. If unsure, say N.
config NETFILTER_XT_MATCH_LENGTH
tristate '"length" match support'
depends on NETFILTER_ADVANCED
-diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
-index 0f060d100880..28a7d4f8be40 100644
---- a/net/netfilter/Makefile
-+++ b/net/netfilter/Makefile
-@@ -212,6 +212,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT) += xt_recent.o
+diff -Naur linux-6.1.56.org/net/netfilter/Makefile linux-6.1.56/net/netfilter/Makefile
+--- linux-6.1.56.org/net/netfilter/Makefile 2023-10-06 14:57:07.000000000 +0200
++++ linux-6.1.56/net/netfilter/Makefile 2023-10-07 14:14:11.094115796 +0200
+@@ -212,6 +212,7 @@
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o
obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
-diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
-index 30ed45b1b57d..2f4640fcb6bd 100644
---- a/net/netfilter/nf_conntrack_core.c
-+++ b/net/netfilter/nf_conntrack_core.c
-@@ -604,6 +604,11 @@ void nf_ct_destroy(struct nf_conntrack *nfct)
+diff -Naur linux-6.1.56.org/net/netfilter/nf_conntrack_core.c linux-6.1.56/net/netfilter/nf_conntrack_core.c
+--- linux-6.1.56.org/net/netfilter/nf_conntrack_core.c 2023-10-06 14:57:07.000000000 +0200
++++ linux-6.1.56/net/netfilter/nf_conntrack_core.c 2023-10-07 14:14:11.098115909 +0200
+@@ -604,6 +604,11 @@
*/
nf_ct_remove_expectations(ct);
if (ct->master)
nf_ct_put(ct->master);
-diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
-index 460294bd4b60..b1e4b9c6d2a4 100644
---- a/net/netfilter/nf_conntrack_standalone.c
-+++ b/net/netfilter/nf_conntrack_standalone.c
-@@ -373,6 +373,11 @@ static int ct_seq_show(struct seq_file *s, void *v)
+diff -Naur linux-6.1.56.org/net/netfilter/nf_conntrack_standalone.c linux-6.1.56/net/netfilter/nf_conntrack_standalone.c
+--- linux-6.1.56.org/net/netfilter/nf_conntrack_standalone.c 2023-10-06 14:57:07.000000000 +0200
++++ linux-6.1.56/net/netfilter/nf_conntrack_standalone.c 2023-10-07 14:14:11.098115909 +0200
+@@ -373,6 +373,11 @@
ct_show_zone(s, ct, NF_CT_DEFAULT_ZONE_DIR);
ct_show_delta_time(s, ct);
seq_printf(s, "use=%u\n", refcount_read(&ct->ct_general.use));
if (seq_has_overflowed(s))
-diff --git a/net/netfilter/regexp/regexp.c b/net/netfilter/regexp/regexp.c
-new file mode 100644
-index 000000000000..900698886531
---- /dev/null
-+++ b/net/netfilter/regexp/regexp.c
+diff -Naur linux-6.1.56.org/net/netfilter/regexp/regexp.c linux-6.1.56/net/netfilter/regexp/regexp.c
+--- linux-6.1.56.org/net/netfilter/regexp/regexp.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-6.1.56/net/netfilter/regexp/regexp.c 2023-10-07 14:14:11.098115909 +0200
@@ -0,0 +1,1197 @@
+/*
+ * regcomp and regexec -- regsub and regerror are elsewhere
+#endif
+
+
-diff --git a/net/netfilter/regexp/regexp.h b/net/netfilter/regexp/regexp.h
-new file mode 100644
-index 000000000000..a72eba71fb61
---- /dev/null
-+++ b/net/netfilter/regexp/regexp.h
+diff -Naur linux-6.1.56.org/net/netfilter/regexp/regexp.h linux-6.1.56/net/netfilter/regexp/regexp.h
+--- linux-6.1.56.org/net/netfilter/regexp/regexp.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-6.1.56/net/netfilter/regexp/regexp.h 2023-10-07 14:14:11.098115909 +0200
@@ -0,0 +1,41 @@
+/*
+ * Definitions etc. for regexp(3) routines.
+void regerror(char *s);
+
+#endif
-diff --git a/net/netfilter/regexp/regmagic.h b/net/netfilter/regexp/regmagic.h
-new file mode 100644
-index 000000000000..5acf4478ff71
---- /dev/null
-+++ b/net/netfilter/regexp/regmagic.h
+diff -Naur linux-6.1.56.org/net/netfilter/regexp/regmagic.h linux-6.1.56/net/netfilter/regexp/regmagic.h
+--- linux-6.1.56.org/net/netfilter/regexp/regmagic.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-6.1.56/net/netfilter/regexp/regmagic.h 2023-10-07 14:14:11.098115909 +0200
@@ -0,0 +1,5 @@
+/*
+ * The first byte of the regexp internal "program" is actually this magic
+ * number; the start node begins in the second byte.
+ */
+#define MAGIC 0234
-diff --git a/net/netfilter/regexp/regsub.c b/net/netfilter/regexp/regsub.c
-new file mode 100644
-index 000000000000..339631f06f00
---- /dev/null
-+++ b/net/netfilter/regexp/regsub.c
+diff -Naur linux-6.1.56.org/net/netfilter/regexp/regsub.c linux-6.1.56/net/netfilter/regexp/regsub.c
+--- linux-6.1.56.org/net/netfilter/regexp/regsub.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-6.1.56/net/netfilter/regexp/regsub.c 2023-10-07 14:14:11.098115909 +0200
@@ -0,0 +1,95 @@
+/*
+ * regsub
+ }
+ *dst++ = '\0';
+}
-diff --git a/net/netfilter/xt_layer7.c b/net/netfilter/xt_layer7.c
-new file mode 100644
-index 000000000000..a7eb760123bf
---- /dev/null
-+++ b/net/netfilter/xt_layer7.c
+diff -Naur linux-6.1.56.org/net/netfilter/xt_layer7.c linux-6.1.56/net/netfilter/xt_layer7.c
+--- linux-6.1.56.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-6.1.56/net/netfilter/xt_layer7.c 2023-10-07 14:14:11.098115909 +0200
@@ -0,0 +1,666 @@
+/*
+ Kernel module to match application layer (OSI layer 7) data in connections.