On Tue, Dec 18, 2018 at 8:16 AM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Wed, Dec 12, 2018 at 4:25 PM Willem de Bruijn > <willemdebruijn.kernel@xxxxxxxxx> wrote: > > On Tue, Dec 11, 2018 at 3:30 PM Deepa Dinamani <deepa.kernel@xxxxxxxxx> wrote: > > > > @@ -851,39 +890,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname, > > > break; > > > > > > case SO_TIMESTAMPING_OLD: > > > - if (val & ~SOF_TIMESTAMPING_MASK) { > > > - ret = -EINVAL; > > > - break; > > > - } > > > - > > > - if (val & SOF_TIMESTAMPING_OPT_ID && > > > - !(sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID)) { > > > - if (sk->sk_protocol == IPPROTO_TCP && > > > - sk->sk_type == SOCK_STREAM) { > > > - if ((1 << sk->sk_state) & > > > - (TCPF_CLOSE | TCPF_LISTEN)) { > > > - ret = -EINVAL; > > > - break; > > > - } > > > - sk->sk_tskey = tcp_sk(sk)->snd_una; > > > - } else { > > > - sk->sk_tskey = 0; > > > - } > > > - } > > > - > > > - if (val & SOF_TIMESTAMPING_OPT_STATS && > > > - !(val & SOF_TIMESTAMPING_OPT_TSONLY)) { > > > - ret = -EINVAL; > > > - break; > > > - } > > > - > > > - sk->sk_tsflags = val; > > > - if (val & SOF_TIMESTAMPING_RX_SOFTWARE) > > > - sock_enable_timestamp(sk, > > > - SOCK_TIMESTAMPING_RX_SOFTWARE); > > > - else > > > - sock_disable_timestamp(sk, > > > - (1UL << SOCK_TIMESTAMPING_RX_SOFTWARE)); > > > + ret = setsockopt_timestamping(sk, optname, val); > > > > Once again a lot of needless code churn. The only functional change is adding > > I think moving the code out into a separate function is a useful cleanup, > but if we want to do that, it may be better done in another patch, to > make it easier to review. I already removed this addition of function. I have open coded all the logic here and in the patch 6. I will post an update. -Deepa