Patchwork sit: fix regression: do not release skb->dst before xmit

login
register
mail settings
Submitter Sascha Hlusiak
Date July 11, 2009, 1:01 p.m.
Message ID <1247317289-27867-1-git-send-email-contact@saschahlusiak.de>
Download mbox | patch
Permalink /patch/29700/
State Accepted
Delegated to: David Miller
Headers show

Comments

Sascha Hlusiak - July 11, 2009, 1:01 p.m.
The sit module makes use of skb->dst in it's xmit function,
so since 93f154b594fe47 sit tunnels are broken, because the
flag IFF_XMIT_DST_RELEASE is not unset.

This patch unsets that flag for sit devices to fix this
regression.

Signed-off-by: Sascha Hlusiak <contact@saschahlusiak.de>
---
 net/ipv6/sit.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Eric Dumazet - July 11, 2009, 1:24 p.m.
Sascha Hlusiak a écrit :
> The sit module makes use of skb->dst in it's xmit function,
> so since 93f154b594fe47 sit tunnels are broken, because the
> flag IFF_XMIT_DST_RELEASE is not unset.
> 
> This patch unsets that flag for sit devices to fix this
> regression.
> 
> Signed-off-by: Sascha Hlusiak <contact@saschahlusiak.de>

Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

> ---
>  net/ipv6/sit.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
> index 68e5230..98b7327 100644
> --- a/net/ipv6/sit.c
> +++ b/net/ipv6/sit.c
> @@ -1018,6 +1018,7 @@ static void ipip6_tunnel_setup(struct net_device *dev)
>  	dev->hard_header_len 	= LL_MAX_HEADER + sizeof(struct iphdr);
>  	dev->mtu		= ETH_DATA_LEN - sizeof(struct iphdr);
>  	dev->flags		= IFF_NOARP;
> +	dev->priv_flags	       &= ~IFF_XMIT_DST_RELEASE;
>  	dev->iflink		= 0;
>  	dev->addr_len		= 4;
>  	dev->features		|= NETIF_F_NETNS_LOCAL;

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - July 12, 2009, 3:31 a.m.
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Sat, 11 Jul 2009 15:24:15 +0200

> Sascha Hlusiak a écrit :
>> The sit module makes use of skb->dst in it's xmit function,
>> so since 93f154b594fe47 sit tunnels are broken, because the
>> flag IFF_XMIT_DST_RELEASE is not unset.
>> 
>> This patch unsets that flag for sit devices to fix this
>> regression.
>> 
>> Signed-off-by: Sascha Hlusiak <contact@saschahlusiak.de>
> 
> Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 68e5230..98b7327 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1018,6 +1018,7 @@  static void ipip6_tunnel_setup(struct net_device *dev)
 	dev->hard_header_len 	= LL_MAX_HEADER + sizeof(struct iphdr);
 	dev->mtu		= ETH_DATA_LEN - sizeof(struct iphdr);
 	dev->flags		= IFF_NOARP;
+	dev->priv_flags	       &= ~IFF_XMIT_DST_RELEASE;
 	dev->iflink		= 0;
 	dev->addr_len		= 4;
 	dev->features		|= NETIF_F_NETNS_LOCAL;