* [PATCH net] netvsc: add rcu_read locking to netvsc callback
@ 2017-01-10 15:50 Stephen Hemminger
2017-01-11 2:06 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Stephen Hemminger @ 2017-01-10 15:50 UTC (permalink / raw)
To: davem; +Cc: netdev, Stephen Hemminger
Lockdep finds a case where netvsc receive processing is incorrectly
assuming it is in RCU safe zone. The driver is using RCU to handle
VF reference but RCU read lock not held.
Fixes 0c9d3ba9a87b ("hv_netvsc: use RCU to protect vf_netdev")
Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
drivers/net/hyperv/netvsc_drv.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index c9414c054852..fcab8019dda0 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -659,6 +659,7 @@ int netvsc_recv_callback(struct hv_device *device_obj,
* policy filters on the host). Deliver these via the VF
* interface in the guest.
*/
+ rcu_read_lock();
vf_netdev = rcu_dereference(net_device_ctx->vf_netdev);
if (vf_netdev && (vf_netdev->flags & IFF_UP))
net = vf_netdev;
@@ -667,6 +668,7 @@ int netvsc_recv_callback(struct hv_device *device_obj,
skb = netvsc_alloc_recv_skb(net, packet, csum_info, *data, vlan_tci);
if (unlikely(!skb)) {
++net->stats.rx_dropped;
+ rcu_read_unlock();
return NVSP_STAT_FAIL;
}
@@ -696,6 +698,7 @@ int netvsc_recv_callback(struct hv_device *device_obj,
* TODO - use NAPI?
*/
netif_rx(skb);
+ rcu_read_unlock();
return 0;
}
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net] netvsc: add rcu_read locking to netvsc callback
2017-01-10 15:50 [PATCH net] netvsc: add rcu_read locking to netvsc callback Stephen Hemminger
@ 2017-01-11 2:06 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2017-01-11 2:06 UTC (permalink / raw)
To: stephen; +Cc: netdev, sthemmin
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 10 Jan 2017 07:50:16 -0800
> Lockdep finds a case where netvsc receive processing is incorrectly
> assuming it is in RCU safe zone. The driver is using RCU to handle
> VF reference but RCU read lock not held.
>
> Fixes 0c9d3ba9a87b ("hv_netvsc: use RCU to protect vf_netdev")
>
> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Fixes tag must have a colon character after "Fixes", you must also
not put any empty lines in between the Fixes tag and the other
tags like signoffs.
Futhermore 0c9d3ba9a87b is not a valid GIT SHA1 ID.
[davem@kkuri net]$ git describe 0c9d3ba9a87b
fatal: Not a valid object name 0c9d3ba9a87b
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-01-11 2:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-10 15:50 [PATCH net] netvsc: add rcu_read locking to netvsc callback Stephen Hemminger
2017-01-11 2:06 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).