Message ID | 20241022150059.1345406-1-edumazet@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | ab101c553bc1f76a839163d1dc0d1e715ad6bb4e |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] neighbour: use kvzalloc()/kvfree() | expand |
On Tue, Oct 22, 2024 at 03:00:59PM +0000, Eric Dumazet wrote: > mm layer is providing convenient functions, we do not have > to work around old limitations. > > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: Gilad Naaman <gnaaman@drivenets.com> > --- Reviewed-by: Joe Damato <jdamato@fastly.com>
From: Eric Dumazet <edumazet@google.com> Date: Tue, 22 Oct 2024 15:00:59 +0000 > mm layer is providing convenient functions, we do not have > to work around old limitations. > > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: Gilad Naaman <gnaaman@drivenets.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Hello: This patch was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 22 Oct 2024 15:00:59 +0000 you wrote: > mm layer is providing convenient functions, we do not have > to work around old limitations. > > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: Gilad Naaman <gnaaman@drivenets.com> > --- > net/core/neighbour.c | 19 ++----------------- > 1 file changed, 2 insertions(+), 17 deletions(-) Here is the summary with links: - [net-next] neighbour: use kvzalloc()/kvfree() https://git.kernel.org/netdev/net-next/c/ab101c553bc1 You are awesome, thank you!
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 395ae1626eef2f22f5b81051671371ed67eb5943..4b871cecd2cee9ccc88e5d29d090c49978cbae9f 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -14,7 +14,6 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include <linux/slab.h> -#include <linux/kmemleak.h> #include <linux/types.h> #include <linux/kernel.h> #include <linux/module.h> @@ -538,14 +537,7 @@ static struct neigh_hash_table *neigh_hash_alloc(unsigned int shift) ret = kmalloc(sizeof(*ret), GFP_ATOMIC); if (!ret) return NULL; - if (size <= PAGE_SIZE) { - buckets = kzalloc(size, GFP_ATOMIC); - } else { - buckets = (struct neighbour __rcu **) - __get_free_pages(GFP_ATOMIC | __GFP_ZERO, - get_order(size)); - kmemleak_alloc(buckets, size, 1, GFP_ATOMIC); - } + buckets = kvzalloc(size, GFP_ATOMIC); if (!buckets) { kfree(ret); return NULL; @@ -562,15 +554,8 @@ static void neigh_hash_free_rcu(struct rcu_head *head) struct neigh_hash_table *nht = container_of(head, struct neigh_hash_table, rcu); - size_t size = (1 << nht->hash_shift) * sizeof(struct neighbour *); - struct neighbour __rcu **buckets = nht->hash_buckets; - if (size <= PAGE_SIZE) { - kfree(buckets); - } else { - kmemleak_free(buckets); - free_pages((unsigned long)buckets, get_order(size)); - } + kvfree(nht->hash_buckets); kfree(nht); }
mm layer is providing convenient functions, we do not have to work around old limitations. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Gilad Naaman <gnaaman@drivenets.com> --- net/core/neighbour.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-)