]> 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)
commita520ffe27801896cebd2d281b3ccd33f8a7e73ee
tree441203009c7ea09d634127efe18c3f029335230b
parent5fc6321e499710defafc3fd5dd7e4b1f7a806eb3
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: 8e0fd2340797f ("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