Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net, sunrpc: Remap EPERM in case of connection failure in xs_tcp_setu…
…p_socket commit 626dfed upstream. When using a BPF program on kernel_connect(), the call can return -EPERM. This causes xs_tcp_setup_socket() to loop forever, filling up the syslog and causing the kernel to potentially freeze up. Neil suggested: This will propagate -EPERM up into other layers which might not be ready to handle it. It might be safer to map EPERM to an error we would be more likely to expect from the network system - such as ECONNREFUSED or ENETDOWN. ECONNREFUSED as error seems reasonable. For programs setting a different error can be out of reach (see handling in 4fbac77) in particular on kernels which do not have f10d059 ("bpf: Make BPF_PROG_RUN_ARRAY return -err instead of allow boolean"), thus given that it is better to simply remap for consistent behavior. UDP does handle EPERM in xs_udp_send_request(). Fixes: d74bad4 ("bpf: Hooks for sys_connect") Fixes: 4fbac77 ("bpf: Hooks for sys_bind") Co-developed-by: Lex Siegel <[email protected]> Signed-off-by: Lex Siegel <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Cc: Neil Brown <[email protected]> Cc: Trond Myklebust <[email protected]> Cc: Anna Schumaker <[email protected]> Link: cilium/cilium#33395 Link: https://lore.kernel.org/bpf/[email protected] Link: https://patch.msgid.link/9069ec1d59e4b2129fc23433349fd5580ad43921.1720075070.git.daniel@iogearbox.net Signed-off-by: Paolo Abeni <[email protected]> Signed-off-by: Hugo SIMELIERE <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
- Loading branch information