Daniel suggests it would be more logical for bpf_offload_dev_match()
to return false is either the program or the map are not offloaded,
rather than treating the both not offloaded case as a "matching
CPU/host device".

This makes no functional difference today, since verifier only calls
bpf_offload_dev_match() when one of the objects is offloaded.

Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com>
---
 kernel/bpf/offload.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/kernel/bpf/offload.c b/kernel/bpf/offload.c
index 453785fa1881..a88cebf368bf 100644
--- a/kernel/bpf/offload.c
+++ b/kernel/bpf/offload.c
@@ -395,10 +395,8 @@ bool bpf_offload_dev_match(struct bpf_prog *prog, struct 
bpf_map *map)
        struct bpf_prog_offload *offload;
        bool ret;
 
-       if (!!bpf_prog_is_dev_bound(prog->aux) != !!bpf_map_is_dev_bound(map))
+       if (!bpf_prog_is_dev_bound(prog->aux) || !bpf_map_is_dev_bound(map))
                return false;
-       if (!bpf_prog_is_dev_bound(prog->aux))
-               return true;
 
        down_read(&bpf_devs_lock);
        offload = prog->aux->offload;
-- 
2.15.1

Reply via email to