On Sun, Feb 03, 2019 at 04:15:07PM +0800, Yafang Shao wrote: > Then we can enable/disable socket debugging without modifying user code. > That is more convenient for debugging. > > Signed-off-by: Yafang Shao <laoar.s...@gmail.com> > --- > include/net/sock.h | 8 ++++++++ > net/core/filter.c | 3 +++ > net/core/sock.c | 8 -------- > 3 files changed, 11 insertions(+), 8 deletions(-) > > diff --git a/include/net/sock.h b/include/net/sock.h > index 2b229f7..8decee9 100644 > --- a/include/net/sock.h > +++ b/include/net/sock.h > @@ -1935,6 +1935,14 @@ static inline void sock_confirm_neigh(struct sk_buff > *skb, struct neighbour *n) > } > } > > +static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool) > +{ > + if (valbool) > + sock_set_flag(sk, bit); > + else > + sock_reset_flag(sk, bit); > +} > + > bool sk_mc_loop(struct sock *sk); > > static inline bool sk_can_gso(const struct sock *sk) > diff --git a/net/core/filter.c b/net/core/filter.c > index 3a49f68..ce5da57 100644 > --- a/net/core/filter.c > +++ b/net/core/filter.c > @@ -4111,6 +4111,9 @@ static unsigned long bpf_xdp_copy(void *dst_buff, const > void *src_buff, > > /* Only some socketops are supported */ > switch (optname) { > + case SO_DEBUG: > + sock_valbool_flag(sk, SOCK_DBG, val); > + break;
I'm missing the point here. This flag has any effect only when SOCK_DEBUGGING is set. But it is off in distros. Since it's for custom debug kernel only why bother with setting the flag via bpf prog?