]> www.infradead.org Git - users/hch/misc.git/commitdiff
neighbour: Replace kvzalloc() with kzalloc() when GFP_ATOMIC is specified
authorKohei Enju <enjuk@amazon.com>
Wed, 19 Feb 2025 10:22:27 +0000 (19:22 +0900)
committerJakub Kicinski <kuba@kernel.org>
Fri, 21 Feb 2025 01:28:01 +0000 (17:28 -0800)
kzalloc() uses page allocator when size is larger than
KMALLOC_MAX_CACHE_SIZE, so the intention of commit ab101c553bc1
("neighbour: use kvzalloc()/kvfree()") can be achieved by using kzalloc().

When using GFP_ATOMIC, kvzalloc() only tries the kmalloc path,
since the vmalloc path does not support the flag.
In this case, kvzalloc() is equivalent to kzalloc() in that neither try
the vmalloc path, so this replacement brings no functional change.
This is primarily a cleanup change, as the original code functions
correctly.

This patch replaces kvzalloc() introduced by commit 41b3caa7c076
("neighbour: Add hlist_node to struct neighbour"), which is called in
the same context and with the same gfp flag as the aforementioned commit
ab101c553bc1 ("neighbour: use kvzalloc()/kvfree()").

Signed-off-by: Kohei Enju <enjuk@amazon.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Link: https://patch.msgid.link/20250219102227.72488-1-enjuk@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/neighbour.c

index d8dd686b5287e655c2659c155b54d546102ac5e6..344c9cd168ec1e62d19ad2b78055f83691386675 100644 (file)
@@ -518,7 +518,7 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift)
        if (!ret)
                return NULL;
 
-       hash_heads = kvzalloc(size, GFP_ATOMIC);
+       hash_heads = kzalloc(size, GFP_ATOMIC);
        if (!hash_heads) {
                kfree(ret);
                return NULL;
@@ -536,7 +536,7 @@ static void neigh_hash_free_rcu(struct rcu_head *head)
                                                    struct neigh_hash_table,
                                                    rcu);
 
-       kvfree(nht->hash_heads);
+       kfree(nht->hash_heads);
        kfree(nht);
 }