aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2018-11-27 22:24:55 -0800
committerDavid S. Miller <davem@davemloft.net>2018-11-30 13:30:44 -0800
commit71844fac1ed459024dd2a448d63d5b28b8c87daa (patch)
tree757e7f01f2fb237833ee6f9e92e33bd2c71db51d /drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
parentnfp: run don't require Qdiscs on representor netdevs (diff)
downloadlinux-dev-71844fac1ed459024dd2a448d63d5b28b8c87daa.tar.xz
linux-dev-71844fac1ed459024dd2a448d63d5b28b8c87daa.zip
nfp: add locking around representor changes
Up until now we never needed to keep a networking locks around representors accesses, we only accessed them when device was reconfigured (under nfp pf->lock) or on fast path (under RCU). Now we want to be able to iterate over all representors during notifications, so make sure representor assignment is done under RTNL lock. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: John Hurley <john.hurley@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_net_repr.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
index b9904f6b41f8..0a1d761c6692 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
@@ -445,7 +445,9 @@ int nfp_reprs_resync_phys_ports(struct nfp_app *app)
continue;
nfp_app_repr_preclean(app, netdev);
+ rtnl_lock();
rcu_assign_pointer(reprs->reprs[i], NULL);
+ rtnl_unlock();
synchronize_rcu();
nfp_repr_clean(repr);
}