aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netdevsim/bpf.c
diff options
context:
space:
mode:
authorQuentin Monnet <quentin.monnet@netronome.com>2018-11-09 08:03:32 -0500
committerAlexei Starovoitov <ast@kernel.org>2018-11-10 18:39:54 -0500
commit16a8cb5cffd0a2929ae97bc258d2d9c92a4e7f6d (patch)
tree76ea924a47f2bb58bb2caf5d5ae5464b7dbbab55 /drivers/net/netdevsim/bpf.c
parenta40a26322a83d4a26a99ad2616cbd77394c19587 (diff)
bpf: do not pass netdev to translate() and prepare() offload callbacks
The kernel functions to prepare verifier and translate for offloaded program retrieve "offload" from "prog", and "netdev" from "offload". Then both "prog" and "netdev" are passed to the callbacks. Simplify this by letting the drivers retrieve the net device themselves from the offload object attached to prog - if they need it at all. There is currently no need to pass the netdev as an argument to those functions. Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'drivers/net/netdevsim/bpf.c')
-rw-r--r--drivers/net/netdevsim/bpf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c
index 560bdaf1c98b..6a5b7bd9a1f9 100644
--- a/drivers/net/netdevsim/bpf.c
+++ b/drivers/net/netdevsim/bpf.c
@@ -258,10 +258,9 @@ static int nsim_bpf_create_prog(struct netdevsim *ns, struct bpf_prog *prog)
258 return 0; 258 return 0;
259} 259}
260 260
261static int 261static int nsim_bpf_verifier_prep(struct bpf_prog *prog)
262nsim_bpf_verifier_prep(struct net_device *dev, struct bpf_prog *prog)
263{ 262{
264 struct netdevsim *ns = netdev_priv(dev); 263 struct netdevsim *ns = netdev_priv(prog->aux->offload->netdev);
265 264
266 if (!ns->bpf_bind_accept) 265 if (!ns->bpf_bind_accept)
267 return -EOPNOTSUPP; 266 return -EOPNOTSUPP;
@@ -269,7 +268,7 @@ nsim_bpf_verifier_prep(struct net_device *dev, struct bpf_prog *prog)
269 return nsim_bpf_create_prog(ns, prog); 268 return nsim_bpf_create_prog(ns, prog);
270} 269}
271 270
272static int nsim_bpf_translate(struct net_device *dev, struct bpf_prog *prog) 271static int nsim_bpf_translate(struct bpf_prog *prog)
273{ 272{
274 struct nsim_bpf_bound_prog *state = prog->aux->offload->dev_priv; 273 struct nsim_bpf_bound_prog *state = prog->aux->offload->dev_priv;
275 274