On Wed, 13 Dec 2017 16:10:33 +0100, Jiri Pirko wrote:
> diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
> index 69d7e9a..9cf61e7 100644
> --- a/net/sched/cls_bpf.c
> +++ b/net/sched/cls_bpf.c
> @@ -170,8 +170,10 @@ static int cls_bpf_offload_cmd(struct tcf_proto *tp, 
> struct cls_bpf_prog *prog,
>                       cls_bpf_offload_cmd(tp, prog, TC_CLSBPF_DESTROY);
>                       return err;
>               } else if (err > 0) {
> -                     prog->gen_flags |= TCA_CLS_FLAGS_IN_HW;
> +                     tcf_block_offload_inc(block, &prog->gen_flags);
>               }
> +     } else {
> +             tcf_block_offload_dec(block, &prog->gen_flags);
>       }
>  
>       if (addorrep && skip_sw && !(prog->gen_flags & TCA_CLS_FLAGS_IN_HW))

The in_hw reporting also seems broken.

tools/testing/selftests/bpf/test_offload.py catches this.

Reply via email to