]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bpf: Remove unnecessary kfree(im_node) in lpm_trie_update_elem
authorHou Tao <houtao1@huawei.com>
Fri, 6 Dec 2024 11:06:15 +0000 (19:06 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 6 Dec 2024 17:14:25 +0000 (09:14 -0800)
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>
kernel/bpf/lpm_trie.c

index 73fd593d3745144b71b2c34fed5b8ae26b414a5f..b5e281a55760be68ceca93caadb7aa608a7cd55b 100644 (file)
@@ -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);