lkml.org 
[lkml]   [2017]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 019/370] enic: set skb->hash type properly
    3.16.42-rc1 review patch.  If anyone has any objections, please let me know.

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

    From: Govindarajulu Varadarajan <_govind@gmx.com>

    commit 17197236d62c44da127be461c63ac5cc2cce1e53 upstream.

    Driver sets the skb l4/l3 hash based on NIC_CFG_RSS_HASH_TYPE_*,
    which is bit mask. This is wrong. Hw actually provides us enum.
    Use CQ_ENET_RQ_DESC_RSS_TYPE_* to set l3 and l4 hash type.

    Fixes: bf751ba802fe ("driver/net: enic: record q_number and rss_hash for skb")
    Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [bwh: Backported to 3.16: drop the version bump]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    --- a/drivers/net/ethernet/cisco/enic/enic_main.c
    +++ b/drivers/net/ethernet/cisco/enic/enic_main.c
    @@ -1033,12 +1033,18 @@ static void enic_rq_indicate_buf(struct
    skb->protocol = eth_type_trans(skb, netdev);
    skb_record_rx_queue(skb, q_number);
    if (netdev->features & NETIF_F_RXHASH) {
    - skb_set_hash(skb, rss_hash,
    - (rss_type &
    - (NIC_CFG_RSS_HASH_TYPE_TCP_IPV6_EX |
    - NIC_CFG_RSS_HASH_TYPE_TCP_IPV6 |
    - NIC_CFG_RSS_HASH_TYPE_TCP_IPV4)) ?
    - PKT_HASH_TYPE_L4 : PKT_HASH_TYPE_L3);
    + switch (rss_type) {
    + case CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv4:
    + case CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv6:
    + case CQ_ENET_RQ_DESC_RSS_TYPE_TCP_IPv6_EX:
    + skb_set_hash(skb, rss_hash, PKT_HASH_TYPE_L4);
    + break;
    + case CQ_ENET_RQ_DESC_RSS_TYPE_IPv4:
    + case CQ_ENET_RQ_DESC_RSS_TYPE_IPv6:
    + case CQ_ENET_RQ_DESC_RSS_TYPE_IPv6_EX:
    + skb_set_hash(skb, rss_hash, PKT_HASH_TYPE_L3);
    + break;
    + }
    }

    /* Hardware does not provide whole packet checksum. It only
    \
     
     \ /
      Last update: 2017-03-10 15:35    [W:4.126 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site