On Sun, Feb 3, 2019 at 12:18 AM Yafang Shao <laoar.s...@gmail.com> 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>
Acked-by: Yonghong Song <y...@fb.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; > case SO_RCVBUF: > sk->sk_userlocks |= SOCK_RCVBUF_LOCK; > sk->sk_rcvbuf = max_t(int, val * 2, SOCK_MIN_RCVBUF); > diff --git a/net/core/sock.c b/net/core/sock.c > index 900e8a9..5ef6daa 100644 > --- a/net/core/sock.c > +++ b/net/core/sock.c > @@ -638,14 +638,6 @@ static int sock_getbindtodevice(struct sock *sk, char > __user *optval, > return ret; > } > > -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) > { > if (dev_recursion_level()) > -- > 1.8.3.1 >