| From 9ab7c2404683dc9bff37ff521d37b8bee068cdc2 Mon Sep 17 00:00:00 2001 |
| From: Stephen Hemminger <sthemmin@microsoft.com> |
| Date: Fri, 1 Nov 2019 16:42:37 -0700 |
| Subject: [PATCH] hv_netvsc: flag software created hash value |
| |
| commit df9f540ca74297a84bafacfa197e9347b20beea5 upstream. |
| |
| When the driver needs to create a hash value because it |
| was not done at higher level, then the hash should be marked |
| as a software not hardware hash. |
| |
| Fixes: f72860afa2e3 ("hv_netvsc: Exclude non-TCP port numbers from vRSS hashing") |
| Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c |
| index 080e071eb7c7..fb8d416f45f7 100644 |
| --- a/drivers/net/hyperv/netvsc_drv.c |
| +++ b/drivers/net/hyperv/netvsc_drv.c |
| @@ -285,9 +285,9 @@ static inline u32 netvsc_get_hash( |
| else if (flow.basic.n_proto == htons(ETH_P_IPV6)) |
| hash = jhash2((u32 *)&flow.addrs.v6addrs, 8, hashrnd); |
| else |
| - hash = 0; |
| + return 0; |
| |
| - skb_set_hash(skb, hash, PKT_HASH_TYPE_L3); |
| + __skb_set_sw_hash(skb, hash, false); |
| } |
| |
| return hash; |
| @@ -795,8 +795,7 @@ static struct sk_buff *netvsc_alloc_recv_skb(struct net_device *net, |
| skb->protocol == htons(ETH_P_IP)) |
| netvsc_comp_ipcsum(skb); |
| |
| - /* Do L4 checksum offload if enabled and present. |
| - */ |
| + /* Do L4 checksum offload if enabled and present. */ |
| if (csum_info && (net->features & NETIF_F_RXCSUM)) { |
| if (csum_info->receive.tcp_checksum_succeeded || |
| csum_info->receive.udp_checksum_succeeded) |
| -- |
| 2.7.4 |
| |