--- x/net/core/sock_map.c +++ y/net/core/sock_map.c @@ -169,9 +169,6 @@ static void sock_map_del_link(struct soc sk_psock_stop_strp(sk, psock); if (verdict_stop) sk_psock_stop_verdict(sk, psock); - - if (psock->psock_update_sk_prot) - psock->psock_update_sk_prot(sk, psock, false); write_unlock_bh(&sk->sk_callback_lock); } } @@ -265,7 +262,7 @@ static int sock_map_link(struct bpf_map } if (psock) { - if ((msg_parser && READ_ONCE(psock->progs.msg_parser)) || + if ((msg_parser && READ_ONCE(psock->progs.msg_parser)) || psock || (stream_parser && READ_ONCE(psock->progs.stream_parser)) || (skb_verdict && READ_ONCE(psock->progs.skb_verdict)) || (skb_verdict && READ_ONCE(psock->progs.stream_verdict)) ||