Commit 87034e9c authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

[IPV4/IPV6]: Remove frag_list check from output path.

I've removed the frag_list check before fragmenting and we'll
rely on dev_queue_xmit to fix things up if necessary.  Any
functions in between should do the right thing since they need
to handle non-linear skb's anyway.  Well that's the theory :)
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 555983d6
......@@ -278,7 +278,7 @@ int ip_mc_output(struct sk_buff *skb)
newskb->dev, ip_dev_loopback_xmit);
}
if (skb->len > dst_pmtu(&rt->u.dst) || skb_shinfo(skb)->frag_list)
if (skb->len > dst_pmtu(&rt->u.dst))
return ip_fragment(skb, ip_finish_output);
else
return ip_finish_output(skb);
......@@ -288,8 +288,7 @@ int ip_output(struct sk_buff *skb)
{
IP_INC_STATS(IPSTATS_MIB_OUTREQUESTS);
if ((skb->len > dst_pmtu(skb->dst) || skb_shinfo(skb)->frag_list) &&
!skb_shinfo(skb)->tso_size)
if (skb->len > dst_pmtu(skb->dst) && !skb_shinfo(skb)->tso_size)
return ip_fragment(skb, ip_finish_output);
else
return ip_finish_output(skb);
......
......@@ -147,7 +147,7 @@ static int ip6_output2(struct sk_buff *skb)
int ip6_output(struct sk_buff *skb)
{
if ((skb->len > dst_pmtu(skb->dst) || skb_shinfo(skb)->frag_list))
if (skb->len > dst_pmtu(skb->dst))
return ip6_fragment(skb, ip6_output2);
else
return ip6_output2(skb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment