On Mon, Apr 15, 2019 at 09:54:55AM +0000, Viet Hoang Tran wrote: > The helper function bpf_sock_ops_cb_flags_set() can be used to both > set and clear the sock_ops callback flags. However, its current > behavior is not consistent. BPF program may clear a flag if more than > one were set, or replace a flag with another one, but cannot clear all > flags. > > This patch also updates the documentation to clarify the ability to > clear flags of this helper function. > [ ... ] > diff --git a/net/core/filter.c b/net/core/filter.c > index fc92ebc4e200..0c4cdfbb2fc7 100644 > --- a/net/core/filter.c > +++ b/net/core/filter.c > @@ -4355,8 +4355,7 @@ BPF_CALL_2(bpf_sock_ops_cb_flags_set, struct bpf_sock_ops_kern *, bpf_sock, > if (!IS_ENABLED(CONFIG_INET) || !sk_fullsock(sk)) > return -EINVAL; > > - if (val) > - tcp_sk(sk)->bpf_sock_ops_cb_flags = val; > + tcp_sk(sk)->bpf_sock_ops_cb_flags = val; Acked-by: Martin KaFai Lau <kafai@xxxxxx> > > return argval & (~BPF_SOCK_OPS_ALL_CB_FLAGS); > } > -- > 2.17.1 >