Revert "ipv6: Initial skb->dev and skb->protocol in ip6_output"
Subsystems (3)
PATCH 1/1 Revert "ipv6: Initial skb->dev and skb->protocol in ip6_output"
From: Chenbo Feng <[email protected]>
This reverts commit 97a7a37a7b7b("ipv6: Initial skb->dev and skb->protocol in ip6_output") since it does not handles the skb->dev assignment inside ip6_fragment() code path properly. Need to rework and upload again
--- net/ipv6/ip6_output.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
net/ipv6/ip6_output.c +3 -3
@@ -67,6 +67,9 @@ static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *struct in6_addr *nexthop;int ret; + skb->protocol =htons (ETH_P_IPV6 ); + skb->dev = dev; +if (ipv6_addr_is_multicast (&ipv6_hdr (skb)->daddr)) {struct inet6_dev *idev =ip6_dst_idev (skb_dst (skb));
@@ -151,9 +154,6 @@ int ip6_output(struct net *net, struct sock *sk, struct sk_buff *skb)struct net_device *dev =skb_dst (skb)->dev;struct inet6_dev *idev =ip6_dst_idev (skb_dst (skb)); - skb->protocol =htons (ETH_P_IPV6 ); - skb->dev = dev; -if (unlikely (idev->cnf.disable_ipv6)) {IP6_INC_STATS (net, idev,IPSTATS_MIB_OUTDISCARDS );kfree_skb (skb);
Signature · 1 line
2.7.4
Quoted 6 lines · Chenbo Feng
From: Chenbo Feng <[email protected]>
This reverts commit 97a7a37a7b7b("ipv6: Initial
skb->devandskb->protocolinip6_output") since it does not handles theskb->devassignment insideip6_fragment()code path properly. Need to rework and upload again
We can avoid the revert I believe the patch is fine after analysis.
Please submit this followup, thanks ! :
net/ipv6/ip6_output.c +0 -1
@@ -869,7 +869,6 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,if (skb->sk &&dst_allfrag (skb_dst (skb)))sk_nocaps_add (skb->sk,NETIF_F_GSO_MASK ); - skb->dev =skb_dst (skb)->dev;icmpv6_send (skb,ICMPV6_PKT_TOOBIG ,0 , mtu); err = -EMSGSIZE ;
Quoted 19 lines · Eric Dumazet
Quoted 6 lines · Chenbo Feng
From: Chenbo Feng <[email protected]>
This reverts commit 97a7a37a7b7b("ipv6: Initial
skb->devandskb->protocolinip6_output") since it does not handles theskb->devassignment insideip6_fragment()code path properly. Need to rework and upload againWe can avoid the revert I believe the patch is fine after analysis.
Please submit this followup, thanks ! :
net/ipv6/ip6_output.c +0
-0
net/ipv6/ip6_output.c int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, · line 874
Quoted 7 lines
net/ipv6/ip6_output.c +0
-1@@ -869,7 +869,6 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,if (skb->sk &&dst_allfrag (skb_dst (skb)))sk_nocaps_add (skb->sk,NETIF_F_GSO_MASK ); - skb->dev =skb_dst (skb)->dev;icmpv6_send (skb,ICMPV6_PKT_TOOBIG ,0 , mtu); err = -EMSGSIZE ;
Thanks for the help! Patch submitted here: http://patchwork.ozlabs.org/patch/774260/