hv_netvsc: use skb_get_hash() instead of a homegrown implementation
authorVitaly Kuznetsov <vkuznets@redhat.com>
Mon, 25 Jan 2016 15:00:41 +0000 (16:00 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Jan 2016 18:51:53 +0000 (10:51 -0800)
commit757647e10e55c01fb7a9c4356529442e316a7c72
tree301b90371e403baf51efa162078be19e074f300c
parent87e57399e9d3606b08b0e1b2dd0f4aaa1d8ba365
hv_netvsc: use skb_get_hash() instead of a homegrown implementation

Recent changes to 'struct flow_keys' (e.g commit d34af823ff40 ("net: Add
VLAN ID to flow_keys")) introduced a performance regression in netvsc
driver. Is problem is, however, not the above mentioned commit but the
fact that netvsc_set_hash() function did some assumptions on the struct
flow_keys data layout and this is wrong.

Get rid of netvsc_set_hash() by switching to skb_get_hash(). This change
will also imply switching to Jenkins hash from the currently used Toeplitz
but it seems there is no good excuse for Toeplitz to stay.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/netvsc_drv.c