On Wed, Dec 16, 2015 at 12:22 PM, Cong Wang <cw...@twopensource.com> wrote:
> Hmm, we should exclude the raw socket case, something like the > following, but I am not sure if the check is too strict or not, also > not sure if we should return an error for this raw socket case. > > diff --git a/net/core/sock.c b/net/core/sock.c > index 765be83..c26e80a 100644 > --- a/net/core/sock.c > +++ b/net/core/sock.c > @@ -872,7 +872,7 @@ int sock_setsockopt(struct socket *sock, int > level, int optname, > > if (val & SOF_TIMESTAMPING_OPT_ID && > !(sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID)) { > - if (sk->sk_protocol == IPPROTO_TCP) { > + if (sk->sk_protocol == IPPROTO_TCP && > sk->sk_type == SOCK_STREAM) { > if (sk->sk_state != TCP_ESTABLISHED) { > ret = -EINVAL; > break; This looks right, please post this officially ;) tcp_sk(sk) only works for TCP sockets , and the test must include sk->sk_type == SOCK_STREAM -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html