Note that tcp_getsockopt and tcp_setsockopt support TCP_ULP, while bpf_getsockopt and bpf_setsockopt do not support TCP_ULP. I think we can add the handling of this case. Signed-off-by: zhangmingyi <zhangmingyi5@xxxxxxxxxx> --- net/core/filter.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/core/filter.c b/net/core/filter.c index 713d6f454df3..f23d3f87e690 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -5383,6 +5383,10 @@ static int sol_tcp_sockopt(struct sock *sk, int optname, if (*optlen < 1) return -EINVAL; break; + case TCP_ULP: + if (getopt) + return -EINVAL; + break; case TCP_BPF_SOCK_OPS_CB_FLAGS: if (*optlen != sizeof(int)) return -EINVAL; -- 2.43.0