On Thu, 11 Jun 2020 18:25:20 +0100 Lorenz Bauer <lmb@xxxxxxxxxxxxxx> wrote: > The stream parser infrastructure isn't set up to deal with UDP > sockets, so we mustn't try to attach programs to them. > > I remember making this change at some point, but I must have lost > it while rebasing or something similar. > > Fixes: 7b98cd42b049 ("bpf: sockmap: Add UDP support") > Signed-off-by: Lorenz Bauer <lmb@xxxxxxxxxxxxxx> > --- > net/core/sock_map.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/net/core/sock_map.c b/net/core/sock_map.c > index 00a26cf2cfe9..35cea36f3892 100644 > --- a/net/core/sock_map.c > +++ b/net/core/sock_map.c > @@ -424,10 +424,7 @@ static int sock_map_get_next_key(struct bpf_map *map, void *key, void *next) > return 0; > } > > -static bool sock_map_redirect_allowed(const struct sock *sk) > -{ > - return sk->sk_state != TCP_LISTEN; > -} > +static bool sock_map_redirect_allowed(const struct sock *sk); > > static int sock_map_update_common(struct bpf_map *map, u32 idx, > struct sock *sk, u64 flags) > @@ -508,6 +505,11 @@ static bool sk_is_udp(const struct sock *sk) > sk->sk_protocol == IPPROTO_UDP; > } > > +static bool sock_map_redirect_allowed(const struct sock *sk) > +{ > + return sk_is_tcp(sk) && sk->sk_state != TCP_LISTEN; > +} > + > static bool sock_map_sk_is_suitable(const struct sock *sk) > { > return sk_is_tcp(sk) || sk_is_udp(sk); Acked-by: Jakub Sitnicki <jakub@xxxxxxxxxxxxxx>