summaryrefslogtreecommitdiffstats
path: root/drivers/net/hyperv/netvsc_drv.c
diff options
context:
space:
mode:
authorStephen Hemminger2016-08-23 21:17:44 +0200
committerDavid S. Miller2016-08-23 21:05:35 +0200
commit8737caafd16790c654f1fb8564abcf6e1f3ffe19 (patch)
tree910e30f75dec9d9ac29fe9b3d16457dc787708c4 /drivers/net/hyperv/netvsc_drv.c
parentMerge tag 'shared-for-4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git... (diff)
downloadkernel-qcow2-linux-8737caafd16790c654f1fb8564abcf6e1f3ffe19.tar.gz
kernel-qcow2-linux-8737caafd16790c654f1fb8564abcf6e1f3ffe19.tar.xz
kernel-qcow2-linux-8737caafd16790c654f1fb8564abcf6e1f3ffe19.zip
hv_netvsc: fix rtnl locking in callback
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 because of use of trylock and then continuing. Fix by replacing with proper assertion. Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/hyperv/netvsc_drv.c')
-rw-r--r--drivers/net/hyperv/netvsc_drv.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index eb2c122ec10a..6924d01a794e 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -1167,9 +1167,8 @@ static void netvsc_free_netdev(struct net_device *netdev)
static struct net_device *get_netvsc_net_device(char *mac)
{
struct net_device *dev, *found = NULL;
- int rtnl_locked;
- rtnl_locked = rtnl_trylock();
+ ASSERT_RTNL();
for_each_netdev(&init_net, dev) {
if (memcmp(dev->dev_addr, mac, ETH_ALEN) == 0) {
@@ -1179,8 +1178,6 @@ static struct net_device *get_netvsc_net_device(char *mac)
break;
}
}
- if (rtnl_locked)
- rtnl_unlock();
return found;
}