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

Submitted by Sascha Hlusiak on July 11, 2009, 1:01 p.m.

Details

Message ID 1247317289-27867-1-git-send-email-contact@saschahlusiak.de
State Accepted
Delegated to: David Miller
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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;