On Wed, Oct 9, 2024 at 8:22 AM Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > > On Tue, 8 Oct 2024 17:51:08 +0800 Jason Xing wrote: > > +static bool tcp_bpf_recv_timestamp(struct sock *sk, struct scm_timestamping_internal *tss) > > +{ > > + struct tcp_sock *tp = tcp_sk(sk); > > + > > + if (BPF_SOCK_OPS_TEST_FLAG(tp, BPF_SOCK_OPS_RX_TIMESTAMPING_OPT_CB_FLAG)) > > + return true; > > + > > + return false; > > +} > > + > > /* Similar to __sock_recv_timestamp, but does not require an skb */ > > void tcp_recv_timestamp(struct msghdr *msg, const struct sock *sk, > > struct scm_timestamping_internal *tss) > > @@ -2284,6 +2294,9 @@ void tcp_recv_timestamp(struct msghdr *msg, const struct sock *sk, > > u32 tsflags = READ_ONCE(sk->sk_tsflags); > > bool has_timestamping = false; > > > > + if (tcp_bpf_recv_timestamp(sk, tss)) > > net/ipv4/tcp.c:2297:29: error: passing 'const struct sock *' to parameter of type 'struct sock *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] > 2297 | if (tcp_bpf_recv_timestamp(sk, tss)) > | ^~ > net/ipv4/tcp.c:2279:49: note: passing argument to parameter 'sk' here > 2279 | static bool tcp_bpf_recv_timestamp(struct sock *sk, struct scm_timestamping_internal *tss) > | ^ Thanks, I will fix this.