lkml.org 
[lkml]   [2017]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 19/51] net: fix harmonize_features() vs NETIF_F_HIGHDMA
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Eric Dumazet <edumazet@google.com>


    [ Upstream commit 7be2c82cfd5d28d7adb66821a992604eb6dd112e ]

    Ashizuka reported a highmem oddity and sent a patch for freescale
    fec driver.

    But the problem root cause is that core networking stack
    must ensure no skb with highmem fragment is ever sent through
    a device that does not assert NETIF_F_HIGHDMA in its features.

    We need to call illegal_highdma() from harmonize_features()
    regardless of CSUM checks.

    Fixes: ec5f06156423 ("net: Kill link between CSUM and SG features.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Pravin Shelar <pshelar@ovn.org>
    Reported-by: "Ashizuka, Yuusuke" <ashiduka@jp.fujitsu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/core/dev.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/net/core/dev.c
    +++ b/net/core/dev.c
    @@ -2815,9 +2815,9 @@ static netdev_features_t harmonize_featu
    if (skb->ip_summed != CHECKSUM_NONE &&
    !can_checksum_protocol(features, type)) {
    features &= ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK);
    - } else if (illegal_highdma(skb->dev, skb)) {
    - features &= ~NETIF_F_SG;
    }
    + if (illegal_highdma(skb->dev, skb))
    + features &= ~NETIF_F_SG;

    return features;
    }

    \
     
     \ /
      Last update: 2017-02-02 19:50    [W:3.960 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site