diff options
author | Paolo Abeni <pabeni@redhat.com> | 2023-09-21 22:49:45 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-09-21 22:49:45 +0300 |
commit | e9cbc89067cce78211c8629c78e931c0fe64e29d (patch) | |
tree | 95662373d0a7b4adc589fec61e120586d476de71 /kernel/bpf/offload.c | |
parent | f30e5323a188cfc2d74b04f222cea0dbe9ffd6e6 (diff) | |
parent | 27bbf45eae9ca98877a2d52a92a188147cd61b07 (diff) | |
download | linux-e9cbc89067cce78211c8629c78e931c0fe64e29d.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR.
No conflicts.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'kernel/bpf/offload.c')
-rw-r--r-- | kernel/bpf/offload.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/bpf/offload.c b/kernel/bpf/offload.c index 92c9df46134a..1a4fec330eaa 100644 --- a/kernel/bpf/offload.c +++ b/kernel/bpf/offload.c @@ -199,12 +199,14 @@ static int __bpf_prog_dev_bound_init(struct bpf_prog *prog, struct net_device *n offload->netdev = netdev; ondev = bpf_offload_find_netdev(offload->netdev); + /* When program is offloaded require presence of "true" + * bpf_offload_netdev, avoid the one created for !ondev case below. + */ + if (bpf_prog_is_offloaded(prog->aux) && (!ondev || !ondev->offdev)) { + err = -EINVAL; + goto err_free; + } if (!ondev) { - if (bpf_prog_is_offloaded(prog->aux)) { - err = -EINVAL; - goto err_free; - } - /* When only binding to the device, explicitly * create an entry in the hashtable. */ |