summaryrefslogtreecommitdiffstats
path: root/drivers/net/hyperv/netvsc_drv.c
diff options
context:
space:
mode:
authorstephen hemminger2017-07-19 20:53:17 +0200
committerDavid S. Miller2017-07-20 07:20:05 +0200
commit2a926f791211b40ba114f45e0e7bfefd2fac5d30 (patch)
tree3cd3b15122daed0f09c4cbb410d580e7f1a34b6b /drivers/net/hyperv/netvsc_drv.c
parentnetvsc: use ERR_PTR to avoid dereference issues (diff)
downloadkernel-qcow2-linux-2a926f791211b40ba114f45e0e7bfefd2fac5d30.tar.gz
kernel-qcow2-linux-2a926f791211b40ba114f45e0e7bfefd2fac5d30.tar.xz
kernel-qcow2-linux-2a926f791211b40ba114f45e0e7bfefd2fac5d30.zip
netvsc: need rcu_derefence when accessing internal device info
The netvsc_device structure should be accessed by rcu_dereference in the send path. Change arguments to netvsc_send() to make this easier to do correctly. Remove no longer needed hv_device_to_netvsc_device. 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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index 0ca8c74143b4..1238600d717e 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -505,8 +505,8 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
/* timestamp packet in software */
skb_tx_timestamp(skb);
- ret = netvsc_send(net_device_ctx->device_ctx, packet,
- rndis_msg, &pb, skb);
+
+ ret = netvsc_send(net_device_ctx, packet, rndis_msg, &pb, skb);
if (likely(ret == 0))
return NETDEV_TX_OK;