aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netdevsim/bpf.c
diff options
context:
space:
mode:
authorQuentin Monnet <quentin.monnet@netronome.com>2018-11-09 08:03:29 -0500
committerAlexei Starovoitov <ast@kernel.org>2018-11-10 18:39:54 -0500
commitb07ade27e93360197e453e5ca80eebdc9099dcb5 (patch)
tree051fca57e0151f163c9c061634065baa9625fea9 /drivers/net/netdevsim/bpf.c
parent00db12c3d141356a4d1e6b6f688e0d5ed3b1f757 (diff)
bpf: pass translate() as a callback and remove its ndo_bpf subcommand
As part of the transition from ndo_bpf() to callbacks attached to struct bpf_offload_dev for some of the eBPF offload operations, move the functions related to code translation to the struct and remove the subcommand that was used to call them through the NDO. 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.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/netdevsim/bpf.c b/drivers/net/netdevsim/bpf.c
index d045b7d666d9..30c2cd516d1c 100644
--- a/drivers/net/netdevsim/bpf.c
+++ b/drivers/net/netdevsim/bpf.c
@@ -269,6 +269,14 @@ nsim_bpf_verifier_prep(struct net_device *dev, struct bpf_verifier_env *env)
269 return nsim_bpf_create_prog(ns, env->prog); 269 return nsim_bpf_create_prog(ns, env->prog);
270} 270}
271 271
272static int nsim_bpf_translate(struct net_device *dev, struct bpf_prog *prog)
273{
274 struct nsim_bpf_bound_prog *state = prog->aux->offload->dev_priv;
275
276 state->state = "xlated";
277 return 0;
278}
279
272static void nsim_bpf_destroy_prog(struct bpf_prog *prog) 280static void nsim_bpf_destroy_prog(struct bpf_prog *prog)
273{ 281{
274 struct nsim_bpf_bound_prog *state; 282 struct nsim_bpf_bound_prog *state;
@@ -285,6 +293,7 @@ static const struct bpf_prog_offload_ops nsim_bpf_dev_ops = {
285 .insn_hook = nsim_bpf_verify_insn, 293 .insn_hook = nsim_bpf_verify_insn,
286 .finalize = nsim_bpf_finalize, 294 .finalize = nsim_bpf_finalize,
287 .prepare = nsim_bpf_verifier_prep, 295 .prepare = nsim_bpf_verifier_prep,
296 .translate = nsim_bpf_translate,
288}; 297};
289 298
290static int nsim_setup_prog_checks(struct netdevsim *ns, struct netdev_bpf *bpf) 299static int nsim_setup_prog_checks(struct netdevsim *ns, struct netdev_bpf *bpf)
@@ -551,11 +560,6 @@ int nsim_bpf(struct net_device *dev, struct netdev_bpf *bpf)
551 ASSERT_RTNL(); 560 ASSERT_RTNL();
552 561
553 switch (bpf->command) { 562 switch (bpf->command) {
554 case BPF_OFFLOAD_TRANSLATE:
555 state = bpf->offload.prog->aux->offload->dev_priv;
556
557 state->state = "xlated";
558 return 0;
559 case BPF_OFFLOAD_DESTROY: 563 case BPF_OFFLOAD_DESTROY:
560 nsim_bpf_destroy_prog(bpf->offload.prog); 564 nsim_bpf_destroy_prog(bpf->offload.prog);
561 return 0; 565 return 0;