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) | ^ -- pw-bot: cr