lkml.org 
[lkml]   [2017]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.14 27/60] ip_gre: check packet length and mtu correctly in erspan tx
    Date
    From: William Tu <u9012063@gmail.com>

    [ Upstream commit f192970de860d3ab90aa9e2a22853201a57bde78 ]

    Similarly to early patch for erspan_xmit(), the ARPHDR_ETHER device
    is the length of the whole ether packet. So skb->len should subtract
    the dev->hard_header_len.

    Fixes: 1a66a836da63 ("gre: add collect_md mode to ERSPAN tunnel")
    Fixes: 84e54fe0a5ea ("gre: introduce native tunnel support for ERSPAN")
    Signed-off-by: William Tu <u9012063@gmail.com>
    Cc: Xin Long <lucien.xin@gmail.com>
    Cc: David Laight <David.Laight@aculab.com>
    Reviewed-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    ---
    net/ipv4/ip_gre.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
    index 467e44d7587d..045331204097 100644
    --- a/net/ipv4/ip_gre.c
    +++ b/net/ipv4/ip_gre.c
    @@ -579,8 +579,8 @@ static void erspan_fb_xmit(struct sk_buff *skb, struct net_device *dev,
    if (gre_handle_offloads(skb, false))
    goto err_free_rt;

    - if (skb->len > dev->mtu) {
    - pskb_trim(skb, dev->mtu);
    + if (skb->len > dev->mtu + dev->hard_header_len) {
    + pskb_trim(skb, dev->mtu + dev->hard_header_len);
    truncate = true;
    }

    @@ -731,8 +731,8 @@ static netdev_tx_t erspan_xmit(struct sk_buff *skb,
    if (skb_cow_head(skb, dev->needed_headroom))
    goto free_skb;

    - if (skb->len - dev->hard_header_len > dev->mtu) {
    - pskb_trim(skb, dev->mtu);
    + if (skb->len > dev->mtu + dev->hard_header_len) {
    + pskb_trim(skb, dev->mtu + dev->hard_header_len);
    truncate = true;
    }

    --
    2.11.0
    \
     
     \ /
      Last update: 2017-12-13 04:01    [W:4.131 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site