net: sched: cls_bpf: use bitwise & rather than logical && on gen_flags
authorColin Ian King <colin.king@canonical.com>
Thu, 2 Nov 2017 20:04:12 +0000 (20:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Nov 2017 06:52:38 +0000 (15:52 +0900)
Currently gen_flags is being operated on by a logical && operator rather
than a bitwise & operator. This looks incorrect as these should be bit
flag operations. Fix this.

Detected by CoverityScan, CID#1460305 ("Logical vs. bitwise operator")

Fixes: 3f7889c4c79b ("net: sched: cls_bpf: call block callbacks for offload)
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_bpf.c

index 5f701c8670a26bfdbc357a20222614e3c5672a19..bc3edde1b9d73fcc4ba3139e69a91a23341be04f 100644 (file)
@@ -174,7 +174,7 @@ static int cls_bpf_offload_cmd(struct tcf_proto *tp, struct cls_bpf_prog *prog,
                }
        }
 
-       if (addorrep && skip_sw && !(prog->gen_flags && TCA_CLS_FLAGS_IN_HW))
+       if (addorrep && skip_sw && !(prog->gen_flags & TCA_CLS_FLAGS_IN_HW))
                return -EINVAL;
 
        return 0;