> > res = __ip4_datagram_connect(sk, uaddr, addr_len); > > if (!res) > > udp4_hash4(sk); > > + udp_call_bpf(sk, BPF_SOCK_OPS_UDP_CONNECTED_CB); > > Why is this called on failure ? > > Same for IPv6. My mistake, it should only be called on success. if (!res) { udp4_hash4(sk); udp_call_bpf(sk, BPF_SOCK_OPS_UDP_CONNECTED_CB); } I'll fix this in a later revision. Jordan