aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/bpf/offload.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/bpf/offload.c')
-rw-r--r--kernel/bpf/offload.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/kernel/bpf/offload.c b/kernel/bpf/offload.c
index 1f7ac00a494d..ae0167366c12 100644
--- a/kernel/bpf/offload.c
+++ b/kernel/bpf/offload.c
@@ -219,14 +219,14 @@ void bpf_prog_offload_destroy(struct bpf_prog *prog)
219 219
220static int bpf_prog_offload_translate(struct bpf_prog *prog) 220static int bpf_prog_offload_translate(struct bpf_prog *prog)
221{ 221{
222 struct netdev_bpf data = {}; 222 struct bpf_prog_offload *offload;
223 int ret; 223 int ret = -ENODEV;
224
225 data.offload.prog = prog;
226 224
227 rtnl_lock(); 225 down_read(&bpf_devs_lock);
228 ret = __bpf_offload_ndo(prog, BPF_OFFLOAD_TRANSLATE, &data); 226 offload = prog->aux->offload;
229 rtnl_unlock(); 227 if (offload)
228 ret = offload->offdev->ops->translate(offload->netdev, prog);
229 up_read(&bpf_devs_lock);
230 230
231 return ret; 231 return ret;
232} 232}