diff options
Diffstat (limited to 'kernel/bpf/offload.c')
-rw-r--r-- | kernel/bpf/offload.c | 14 |
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 | ||
220 | static int bpf_prog_offload_translate(struct bpf_prog *prog) | 220 | static 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 | } |