summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHou Tao <houtao1@huawei.com>2024-12-06 19:06:15 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-14 20:03:19 +0100
commit6dc076a257a5343308eeb5e94f11112f608d929e (patch)
tree94c794878fde6081ad359556b719c5c6fb9d2f77
parent81ec3c6ceb7c9e67aeed32efff97009362088b8a (diff)
downloadlinux-6dc076a257a5343308eeb5e94f11112f608d929e.tar.gz
linux-6dc076a257a5343308eeb5e94f11112f608d929e.tar.bz2
linux-6dc076a257a5343308eeb5e94f11112f608d929e.zip
bpf: Remove unnecessary kfree(im_node) in lpm_trie_update_elem
[ Upstream commit 3d5611b4d7efbefb85a74fcdbc35c603847cc022 ] There is no need to call kfree(im_node) when updating element fails, because im_node must be NULL. Remove the unnecessary kfree() for im_node. Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Hou Tao <houtao1@huawei.com> Link: https://lore.kernel.org/r/20241206110622.1161752-3-houtao@huaweicloud.com Signed-off-by: Alexei Starovoitov <ast@kernel.org> Stable-dep-of: 532d6b36b2bf ("bpf: Handle in-place update for full LPM trie correctly") Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--kernel/bpf/lpm_trie.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/bpf/lpm_trie.c b/kernel/bpf/lpm_trie.c
index a82cf3693778..8a040f123e04 100644
--- a/kernel/bpf/lpm_trie.c
+++ b/kernel/bpf/lpm_trie.c
@@ -315,7 +315,7 @@ static long trie_update_elem(struct bpf_map *map,
void *_key, void *value, u64 flags)
{
struct lpm_trie *trie = container_of(map, struct lpm_trie, map);
- struct lpm_trie_node *node, *im_node = NULL, *new_node = NULL;
+ struct lpm_trie_node *node, *im_node, *new_node = NULL;
struct lpm_trie_node *free_node = NULL;
struct lpm_trie_node __rcu **slot;
struct bpf_lpm_trie_key_u8 *key = _key;
@@ -449,9 +449,7 @@ out:
if (ret) {
if (new_node)
trie->n_entries--;
-
kfree(new_node);
- kfree(im_node);
}
spin_unlock_irqrestore(&trie->lock, irq_flags);