summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/netronome/nfp/nfp_app.c
diff options
context:
space:
mode:
authorJakub Kicinski2018-11-28 07:24:55 +0100
committerDavid S. Miller2018-11-30 22:30:44 +0100
commit71844fac1ed459024dd2a448d63d5b28b8c87daa (patch)
tree757e7f01f2fb237833ee6f9e92e33bd2c71db51d /drivers/net/ethernet/netronome/nfp/nfp_app.c
parentnfp: run don't require Qdiscs on representor netdevs (diff)
downloadkernel-qcow2-linux-71844fac1ed459024dd2a448d63d5b28b8c87daa.tar.gz
kernel-qcow2-linux-71844fac1ed459024dd2a448d63d5b28b8c87daa.tar.xz
kernel-qcow2-linux-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 'drivers/net/ethernet/netronome/nfp/nfp_app.c')
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_app.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_app.c b/drivers/net/ethernet/netronome/nfp/nfp_app.c
index 4a1b8f79e731..117553914342 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_app.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_app.c
@@ -131,7 +131,9 @@ nfp_app_reprs_set(struct nfp_app *app, enum nfp_repr_type type,
struct nfp_reprs *old;
old = nfp_reprs_get_locked(app, type);
+ rtnl_lock();
rcu_assign_pointer(app->reprs[type], reprs);
+ rtnl_unlock();
return old;
}