summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHirokazu MORIKAWA2026-01-30 01:14:53 +0000
committerHauke Mehrtens2026-02-03 22:26:21 +0000
commitdb44ad28b62ff3bcab0f3736525048b2478a6271 (patch)
tree0746c71e6546f6c1de432658734771284b940207
parent8dbd00d4cdb4fc6b6445865970a771c24fa00864 (diff)
downloadopenwrt-db44ad28b62ff3bcab0f3736525048b2478a6271.tar.gz
kernel: revert ip6_tunnel use skb_vlan_inet_prepare() in __ip6_tnl_rcv()
Fixe Linux 6.12.67 broke ipip6 tunnel (DS-Lite) and MAP-E. Upstream report: https://lists.openwall.net/netdev/2026/01/30/70 Fixes: https://github.com/openwrt/openwrt/issues/21737 Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com> Link: https://github.com/openwrt/openwrt/pull/21783 (cherry picked from commit ee0b160accecc397c124b8ddc356822be32a3320) Link: https://github.com/openwrt/openwrt/pull/21825 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--target/linux/generic/hack-6.12/940-revert_ip6_tunnel_use_skb_vlan_inet_prepare.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/target/linux/generic/hack-6.12/940-revert_ip6_tunnel_use_skb_vlan_inet_prepare.patch b/target/linux/generic/hack-6.12/940-revert_ip6_tunnel_use_skb_vlan_inet_prepare.patch
new file mode 100644
index 0000000000..da0c5e49d1
--- /dev/null
+++ b/target/linux/generic/hack-6.12/940-revert_ip6_tunnel_use_skb_vlan_inet_prepare.patch
@@ -0,0 +1,27 @@
+From f4d02a22079cc198b26edd0efee5f50e5f3cf0e3 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Fri, 30 Jan 2026 13:34:20 +0100
+Subject: Revert "ip6_tunnel: use skb_vlan_inet_prepare() in __ip6_tnl_rcv()"
+
+This reverts commit df5ffde9669314500809bc498ae73d6d3d9519ac.
+
+This change broke the IPv6 tunneling stack (MAP-E and DS-Lite)
+
+Link: https://lists.openwall.net/netdev/2026/01/30/70
+Link: https://github.com/openwrt/openwrt/issues/21737
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ net/ipv6/ip6_tunnel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/ipv6/ip6_tunnel.c
++++ b/net/ipv6/ip6_tunnel.c
+@@ -970,7 +970,7 @@ static int __ip6_tnl_rcv(struct ip6_tnl
+
+ skb_reset_network_header(skb);
+
+- if (skb_vlan_inet_prepare(skb, true)) {
++ if (!pskb_inet_may_pull(skb)) {
+ DEV_STATS_INC(tunnel->dev, rx_length_errors);
+ DEV_STATS_INC(tunnel->dev, rx_errors);
+ goto drop;