While testing sockmap with more programs (besides our test programs)
I found a couple issues.
The attached series fixes an issue where pinned maps were not
working correctly, blocking sockets returned zero, and an error
path that when the sock hit an out of memory case resulted in a
double page_put() while doing ingress redirects.
See individual patches for more details.
John Fastabend (3):
bpf: sockmap, map_release does not hold refcnt for pinned maps
bpf: sockmap, sk_wait_event needed to handle blocking cases
bpf: sockmap, fix double put_page on ENOMEM error in redirect path
include/linux/bpf.h | 3 +++
kernel/bpf/sockmap.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++----
kernel/bpf/syscall.c | 10 +++++++++-
3 files changed, 59 insertions(+), 5 deletions(-)