From 3ce453209973c58ae6f981c05e42bf792ce4384d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 9 Nov 2024 12:05:27 +0000 Subject: [PATCH] Revert "bareudp: Pull inner IP header in bareudp_udp_encap_recv()." This reverts commit 76851c70a5cfa5444718ba00f87d067ecc816ea0 which is commit 45fa29c85117170b0508790f878b13ec6593c888 upstream. It breaks the Android kernel build and can be brought back in the future in an abi-safe way if it is really needed. Bug: 161946584 Change-Id: Ic4c22cf6bfa12bdc130cf846cfb5554b8f5580eb Signed-off-by: Greg Kroah-Hartman --- drivers/net/bareudp.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c index 66019108ca36..e01dd36af62c 100644 --- a/drivers/net/bareudp.c +++ b/drivers/net/bareudp.c @@ -60,7 +60,6 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb) __be16 proto; void *oiph; int err; - int nh; bareudp = rcu_dereference_sk_user_data(sk); if (!bareudp) @@ -138,24 +137,9 @@ static int bareudp_udp_encap_recv(struct sock *sk, struct sk_buff *skb) } skb_dst_set(skb, &tun_dst->dst); skb->dev = bareudp->dev; - skb_reset_mac_header(skb); - - /* Save offset of outer header relative to skb->head, - * because we are going to reset the network header to the inner header - * and might change skb->head. - */ - nh = skb_network_header(skb) - skb->head; - + oiph = skb_network_header(skb); skb_reset_network_header(skb); - - if (!pskb_inet_may_pull(skb)) { - DEV_STATS_INC(bareudp->dev, rx_length_errors); - DEV_STATS_INC(bareudp->dev, rx_errors); - goto drop; - } - - /* Get the outer header. */ - oiph = skb->head + nh; + skb_reset_mac_header(skb); if (!ipv6_mod_enabled() || family == AF_INET) err = IP_ECN_decapsulate(oiph, skb);