summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Sitnicki <jakub@cloudflare.com>2024-05-27 13:20:08 +0200
committerDaniel Borkmann <daniel@iogearbox.net>2024-05-27 19:34:25 +0200
commit3b9ce0491a43e9af7f108b2f1bced7cd35931660 (patch)
tree3ba3ed3599c9ad372609e9e7ffb6bf1cba40e24d
parentbpf: Allow delete from sockmap/sockhash only if update is allowed (diff)
downloadlinux-3b9ce0491a43e9af7f108b2f1bced7cd35931660.tar.xz
linux-3b9ce0491a43e9af7f108b2f1bced7cd35931660.zip
Revert "bpf, sockmap: Prevent lock inversion deadlock in map delete elem"
This reverts commit ff91059932401894e6c86341915615c5eb0eca48. This check is no longer needed. BPF programs attached to tracepoints are now rejected by the verifier when they attempt to delete from a sockmap/sockhash maps. Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/bpf/20240527-sockmap-verify-deletes-v1-2-944b372f2101@cloudflare.com
-rw-r--r--net/core/sock_map.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/net/core/sock_map.c b/net/core/sock_map.c
index 9402889840bf..63c016b4c169 100644
--- a/net/core/sock_map.c
+++ b/net/core/sock_map.c
@@ -423,9 +423,6 @@ static int __sock_map_delete(struct bpf_stab *stab, struct sock *sk_test,
struct sock *sk;
int err = 0;
- if (irqs_disabled())
- return -EOPNOTSUPP; /* locks here are hardirq-unsafe */
-
spin_lock_bh(&stab->lock);
sk = *psk;
if (!sk_test || sk_test == sk)
@@ -948,9 +945,6 @@ static long sock_hash_delete_elem(struct bpf_map *map, void *key)
struct bpf_shtab_elem *elem;
int ret = -ENOENT;
- if (irqs_disabled())
- return -EOPNOTSUPP; /* locks here are hardirq-unsafe */
-
hash = sock_hash_bucket_hash(key, key_size);
bucket = sock_hash_select_bucket(htab, hash);