summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorHou Tao <houtao1@huawei.com>2024-12-06 19:06:15 +0800
committerAlexei Starovoitov <ast@kernel.org>2024-12-06 09:14:25 -0800
commit3d5611b4d7efbefb85a74fcdbc35c603847cc022 (patch)
tree7fd820019ea7fd4f07c69b48be92f22b3e7b281f /kernel
parent156c977c539e87e173f505b23989d7b0ec0bc7d8 (diff)
bpf: Remove unnecessary kfree(im_node) in lpm_trie_update_elem
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>
Diffstat (limited to 'kernel')
-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 73fd593d3745..b5e281a55760 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;
@@ -431,9 +431,7 @@ out:
if (ret) {
if (new_node)
trie->n_entries--;
-
kfree(new_node);
- kfree(im_node);
}
spin_unlock_irqrestore(&trie->lock, irq_flags);