diff options
author | Martin KaFai Lau <kafai@fb.com> | 2019-06-13 15:00:01 -0700 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-06-15 01:21:19 +0200 |
commit | 99f3a064bc2e4bd5fe50218646c5be342f2ad18c (patch) | |
tree | b5eb23bfcbf922d9773265810bb4119e57a31a8a /net/core/sock.c | |
parent | e55d54f43d3f11718d9e2800225097fda498e141 (diff) | |
download | linux-99f3a064bc2e4bd5fe50218646c5be342f2ad18c.tar.gz linux-99f3a064bc2e4bd5fe50218646c5be342f2ad18c.tar.bz2 linux-99f3a064bc2e4bd5fe50218646c5be342f2ad18c.zip |
bpf: net: Add SO_DETACH_REUSEPORT_BPF
There is SO_ATTACH_REUSEPORT_[CE]BPF but there is no DETACH.
This patch adds SO_DETACH_REUSEPORT_BPF sockopt. The same
sockopt can be used to undo both SO_ATTACH_REUSEPORT_[CE]BPF.
reseport_detach_prog() is added and it is mostly a mirror
of the existing reuseport_attach_prog(). The differences are,
it does not call reuseport_alloc() and returns -ENOENT when
there is no old prog.
Cc: Craig Gallek <kraig@google.com>
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Reviewed-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 75b1c950b49f..06be30737b69 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1045,6 +1045,10 @@ set_rcvbuf: } break; + case SO_DETACH_REUSEPORT_BPF: + ret = reuseport_detach_prog(sk); + break; + case SO_DETACH_FILTER: ret = sk_detach_filter(sk); break; |