]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Sockmap/tls, push write_space updates through ulp updates
authorJohn Fastabend <john.fastabend@gmail.com>
Sat, 11 Jan 2020 06:12:01 +0000 (06:12 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 15 Jan 2020 22:26:13 +0000 (23:26 +0100)
commitee05b1acf8a60807fae3dcd6d0e9c41107a5ca1d
tree441203009c7ea09d634127efe18c3f029335230b
parent50f5bbf921680013d2f7a14e5f750c979a53593e
bpf: Sockmap/tls, push write_space updates through ulp updates

When sockmap sock with TLS enabled is removed we cleanup bpf/psock state
and call tcp_update_ulp() to push updates to TLS ULP on top. However, we
don't push the write_space callback up and instead simply overwrite the
op with the psock stored previous op. This may or may not be correct so
to ensure we don't overwrite the TLS write space hook pass this field to
the ULP and have it fixup the ctx.

This completes a previous fix that pushed the ops through to the ULP
but at the time missed doing this for write_space, presumably because
write_space TLS hook was added around the same time.

Fixes: 565c529f88607 ("bpf: sockmap/tls, close can race with map free")
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/bpf/20200111061206.8028-4-john.fastabend@gmail.com
include/linux/skmsg.h
include/net/tcp.h
net/ipv4/tcp_ulp.c
net/tls/tls_main.c