[PATCH] hv_netvsc: fix comments

2016-09-23 Thread sthemmin
From: Stephen Hemminger Typo's and spelling errors. Also remove old comment from staging era. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |7 +++ 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv

[PATCH 2/7] hv_netvsc: dev hold/put reference to VF

2016-09-22 Thread sthemmin
From: Stephen Hemminger The netvsc driver holds a pointer to the virtual function network device if managing SR-IOV association. In order to ensure that the VF network device does not disappear, it should be using dev_hold/dev_put to get a reference count. Signed-off-by: Stephen Hemminger ---

[PATCH 4/7] hv_netvsc: improve VF device matching

2016-09-22 Thread sthemmin
From: Stephen Hemminger The code to associate netvsc and VF devices can be made less error prone by using a better matching algorithms. On registration, use the permanent address which avoids any possible issues caused by device MAC address being changed. For all other callbacks, search by the n

[PATCH 5/7] hv_netvsc: use RCU to protect vf_netdev

2016-09-22 Thread sthemmin
From: Stephen Hemminger The vf_netdev pointer in the netvsc device context can simply be protected by RCU because network device destruction is already RCU synchronized. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |2 +- drivers/net/hyperv/netvsc_drv.c | 29 +

[PATCH 6/7] hv_netvsc: remove VF in flight counters

2016-09-22 Thread sthemmin
From: Stephen Hemminger Since VF reference is now protected by RCU, no longer need the VF usage counter and can use device flags to see whether to inject or not. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |3 +- drivers/net/hyperv/netvsc_drv.c | 81 ++---

[PATCH net-next 0/7] hv_netvsc changes

2016-09-22 Thread sthemmin
From: Stephen Hemminger These are mostly about improving the handling of interaction between the virtual network device (netvsc) and the SR-IOV VF network device. Stephen Hemminger (7): hv_netvsc: use consume_skb hv_netvsc: dev hold/put reference to VF hv_netvsc: simplify callback event co

[PATCH 1/7] hv_netvsc: use consume_skb

2016-09-22 Thread sthemmin
From: Stephen Hemminger Packets that are transmitted in normal path should use consume_skb instead of kfree_skb. This allows for better tracing of packet drops. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff

[PATCH 3/7] hv_netvsc: simplify callback event code

2016-09-22 Thread sthemmin
From: Stephen Hemminger The callback handler for netlink events can be simplified: * Consolidate check for netlink callback events about this driver itself. * Ignore non-Ethernet devices. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc_drv.c | 28 ++--

[PATCH 7/7] hv_netvsc: count multicast packets received

2016-09-22 Thread sthemmin
From: Stephen Hemminger Useful for debugging issues with multicast and SR-IOV to keep track of number of received multicast packets. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |2 ++ drivers/net/hyperv/netvsc_drv.c |9 - 2 files changed, 10 insertions(

[PATCH net-next] Revert "hv_netvsc: make inline functions static"

2016-09-09 Thread sthemmin
From: Stephen Hemminger These functions are used by other code misc-next tree. This reverts commit 30d1de08c87ddde6f73936c3350e7e153988fe02. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 85 + include/linux/hyperv.h | 84 ++

[PATCH 13/14] hv_netvsc: report vmbus name in ethtool

2016-08-23 Thread sthemmin
From: Stephen Hemminger Make netvsc on vmbus behave more like PCI. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc_drv.c | 4 include/linux/hyperv.h | 7 +++ 2 files changed, 11 insertions(+) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/ne

[PATCH 11/14] hv_netvsc: make netvsc_destroy_buf void

2016-08-23 Thread sthemmin
From: Stephen Hemminger No caller checks the return value. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 14 ++ 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 830aae2..471c476 100644

[PATCH 05/14] hv_netvsc: make inline functions static

2016-08-23 Thread sthemmin
From: Stephen Hemminger Several new functions were introduced into hyperv.h but only used in one file. Move them and let compiler decide on inline. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 85 - include/linux/hyperv.h |

[PATCH 08/14] hv_netvsc: init completion during alloc

2016-08-23 Thread sthemmin
From: Stephen Hemminger Move initialization to allocate where other fields are initialized. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 2e

[PATCH 09/14] hv_netvsc: rearrange start_xmit

2016-08-23 Thread sthemmin
From: Stephen Hemminger Rearrange the transmit routine to eliminate goto's and unnecessary boolean variables. Use standard functions to test for vlan tag. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc_drv.c | 106 +++- 1 file changed, 51 ins

[PATCH 01/14] hv_netvsc: fix rtnl locking in callback

2016-08-23 Thread sthemmin
From: Stephen Hemminger The function get_netvsc_net_device had conditional locking. This was unnecessary, incorrect, but harmless. It was unnecessary since the code is only called from netlink netdev event callback where RTNL is always acquired before the callbacks are run. It was incorrect becau

[PATCH 10/14] hv_netvsc: refactor completion function

2016-08-23 Thread sthemmin
From: Stephen Hemminger Break the different cases, code is cleaner if broken up Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 103 1 file changed, 56 insertions(+), 47 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/dri

[PATCH 07/14] hv_netvsc: make device_remove void

2016-08-23 Thread sthemmin
From: Stephen Hemminger Always returns 0 and no callers check. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h | 2 +- drivers/net/hyperv/netvsc.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hype

[PATCH 14/14] hv_netvsc: add ethtool statistics for tx packet issues

2016-08-23 Thread sthemmin
From: Stephen Hemminger Printing console messages is not helpful when system is out of memory; and can be disastrous with netconsole. Instead keep statistics of these anomalous conditions. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h | 9 + drivers/net/hyperv/netvs

[PATCH 06/14] hv_netvsc: use ARRAY_SIZE() for NDIS versions

2016-08-23 Thread sthemmin
From: Stephen Hemminger Don't hard code size of array of NDIS versions. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 4ef2af6..110bbb8 1

[PATCH 02/14] hv_netvsc: make RSS hash key static

2016-08-23 Thread sthemmin
From: Stephen Hemminger Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h | 2 -- drivers/net/hyperv/rndis_filter.c | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h index ce45d68..b58e5

[PATCH 12/14] hv_netvsc: make variable local

2016-08-23 Thread sthemmin
From: Stephen Hemminger The variable m_ret is only used in one basic block. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 471c476..2a9ccc

[PATCH 03/14] hv_netvsc: use kcalloc

2016-08-23 Thread sthemmin
From: Stephen Hemminger Better to use kcalloc rather than kzalloc and multiply for an array. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index

[PATCH 04/14] hv_netvsc: style cleanups

2016-08-23 Thread sthemmin
From: Stephen Hemminger Fix most of the complaints about the style of the code. Things like extra blank lines and return statements. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 18 ++ drivers/net/hyperv/netvsc_drv.c | 7 --- drivers/net/hyper

[PATCH 12/14] hv_netvsc: make variable local

2016-08-23 Thread sthemmin
From: Stephen Hemminger The variable m_ret is only used in one basic block. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 471c476..2a

[PATCH 10/14] hv_netvsc: refactor completion function

2016-08-23 Thread sthemmin
From: Stephen Hemminger Break the different cases, code is cleaner if broken up Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 107 +++ 1 files changed, 58 insertions(+), 49 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/dr

[PATCH 03/14] hv_netvsc: use kcalloc

2016-08-23 Thread sthemmin
From: Stephen Hemminger Better to use kcalloc rather than kzalloc and multiply for an array. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c in

[PATCH 11/14] hv_netvsc: make netvsc_destroy_buf void

2016-08-23 Thread sthemmin
From: Stephen Hemminger No caller checks the return value. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 14 ++ 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 830aae2..471c476 100

[PATCH net-next 00/14] hv_netvsc: cleanups

2016-08-23 Thread sthemmin
From: Stephen Hemminger Hyper-V network driver cleanups. The only new functionality is minor extensions to ethtool. Apologies if this was already sent, still working out the new email send methodolgy. Stephen Hemminger (14): hv_netvsc: fix rtnl locking in callback hv_netvsc: make RSS hash

[PATCH 04/14] hv_netvsc: style cleanups

2016-08-23 Thread sthemmin
From: Stephen Hemminger Fix most of the complaints about the style of the code. Things like extra blank lines and return statements. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 18 ++ drivers/net/hyperv/netvsc_drv.c |7 --- drivers/net/h

[PATCH 06/14] hv_netvsc: use ARRAY_SIZE() for NDIS versions

2016-08-23 Thread sthemmin
From: Stephen Hemminger Don't hard code size of array of NDIS versions. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c |7 --- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index 4ef2af6..110bb

[PATCH 01/14] hv_netvsc: fix rtnl locking in callback

2016-08-23 Thread sthemmin
From: Stephen Hemminger The function get_netvsc_net_device had conditional locking. This was unnecessary, incorrect, but harmless. It was unnecessary since the code is only called from netlink netdev event callback where RTNL is always acquired before the callbacks are run. It was incorrect becau

[PATCH 14/14] hv_netvsc: add ethtool statistics for tx packet issues

2016-08-23 Thread sthemmin
From: Stephen Hemminger Printing console messages is not helpful when system is out of memory; and can be disastrous with netconsole. Instead keep statistics of these anomalous conditions. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |9 drivers/net/hyperv/netv

[PATCH 08/14] hv_netvsc: init completion during alloc

2016-08-23 Thread sthemmin
From: Stephen Hemminger Move initialization to allocate where other fields are initialized. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c |4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c ind

[PATCH 13/14] hv_netvsc: report vmbus name in ethtool

2016-08-23 Thread sthemmin
From: Stephen Hemminger Make netvsc on vmbus behave more like PCI. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc_drv.c |4 include/linux/hyperv.h |7 +++ 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/drivers/net/hyperv/netvsc_drv.c b

[PATCH 05/14] hv_netvsc: make inline functions static

2016-08-23 Thread sthemmin
From: Stephen Hemminger Several new functions were introduced into hyperv.h but only used in one file. Move them and let compiler decide on inline. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc.c | 85 ++- include/linux/hyperv.h |

[PATCH 09/14] hv_netvsc: rearrange start_xmit

2016-08-23 Thread sthemmin
From: Stephen Hemminger Rearrange the transmit routine to eliminate goto's and unnecessary boolean variables. Use standard functions to test for vlan tag. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/netvsc_drv.c | 106 +++ 1 files changed, 51 in

[PATCH 07/14] hv_netvsc: make device_remove void

2016-08-23 Thread sthemmin
From: Stephen Hemminger Always returns 0 and no callers check. Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |2 +- drivers/net/hyperv/netvsc.c |3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/ne

[PATCH 02/14] hv_netvsc: make RSS hash key static

2016-08-23 Thread sthemmin
From: Stephen Hemminger Signed-off-by: Stephen Hemminger --- drivers/net/hyperv/hyperv_net.h |2 -- drivers/net/hyperv/rndis_filter.c |3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h index ce45d68.