diff options
author | Changli Gao <xiaosuo@gmail.com> | 2010-07-31 09:25:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-08-02 20:25:07 -0400 |
commit | c893b8066c7bf6156e4d760e5acaf4c148e37190 (patch) | |
tree | 8487417a6e938a1204a7e30cbc53fa2d274e6621 /net/ipv4/ip_output.c | |
parent | 3c0fef0b7d36e5f8d3ea3731a8228102274e3c23 (diff) |
ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice
6c79bf0f2440fd250c8fce8d9b82fcf03d4e8350 subtracts PPPOE_SES_HLEN from mtu at
the front of ip_fragment(). So the later subtraction should be removed. The
MTU of 802.1q is also 1500, so MTU should not be changed.
Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: Bart De Schuymer <bdschuym@pandora.bo>
----
net/ipv4/ip_output.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
Signed-off-by: Bart De Schuymer <bdschuym@pandora.bo>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_output.c')
-rw-r--r-- | net/ipv4/ip_output.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 6652bd9da676..04b69896df5f 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -446,7 +446,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) | |||
446 | int ptr; | 446 | int ptr; |
447 | struct net_device *dev; | 447 | struct net_device *dev; |
448 | struct sk_buff *skb2; | 448 | struct sk_buff *skb2; |
449 | unsigned int mtu, hlen, left, len, ll_rs, pad; | 449 | unsigned int mtu, hlen, left, len, ll_rs; |
450 | int offset; | 450 | int offset; |
451 | __be16 not_last_frag; | 451 | __be16 not_last_frag; |
452 | struct rtable *rt = skb_rtable(skb); | 452 | struct rtable *rt = skb_rtable(skb); |
@@ -585,9 +585,7 @@ slow_path: | |||
585 | /* for bridged IP traffic encapsulated inside f.e. a vlan header, | 585 | /* for bridged IP traffic encapsulated inside f.e. a vlan header, |
586 | * we need to make room for the encapsulating header | 586 | * we need to make room for the encapsulating header |
587 | */ | 587 | */ |
588 | pad = nf_bridge_pad(skb); | 588 | ll_rs = LL_RESERVED_SPACE_EXTRA(rt->dst.dev, nf_bridge_pad(skb)); |
589 | ll_rs = LL_RESERVED_SPACE_EXTRA(rt->dst.dev, pad); | ||
590 | mtu -= pad; | ||
591 | 589 | ||
592 | /* | 590 | /* |
593 | * Fragment the datagram. | 591 | * Fragment the datagram. |