Re: [PATCH] IPoIB: use kvzalloc to allocate an array of bucket pointers
From: Jan Dakinevich
Date: Mon Jul 16 2018 - 12:20:58 EST
On Mon, 9 Jul 2018 16:51:03 +0300
Jan Dakinevich <jan.dakinevich@xxxxxxxxxxxxx> wrote:
> This table by default takes 32KiB which is 3rd memory order.
> Meanwhile, this memory is not aimed for DMA operation and could be
> safely allocated by vmalloc.
>
> Signed-off-by: Jan Dakinevich <jan.dakinevich@xxxxxxxxxxxxx>
> ---
> drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c
> b/drivers/infiniband/ulp/ipoib/ipoib_main.c index 26cde95..cb752df
> 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
> @@ -1526,7 +1526,7 @@ static int ipoib_neigh_hash_init(struct
> ipoib_dev_priv *priv) return -ENOMEM;
> set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags);
> size = roundup_pow_of_two(arp_tbl.gc_thresh3);
> - buckets = kcalloc(size, sizeof(*buckets), GFP_KERNEL);
> + buckets = kvcalloc(size, sizeof(*buckets), GFP_KERNEL);
> if (!buckets) {
> kfree(htbl);
> return -ENOMEM;
> @@ -1554,7 +1554,7 @@ static void neigh_hash_free_rcu(struct rcu_head
> *head) struct ipoib_neigh __rcu **buckets = htbl->buckets;
> struct ipoib_neigh_table *ntbl = htbl->ntbl;
>
> - kfree(buckets);
> + kvfree(buckets);
> kfree(htbl);
> complete(&ntbl->deleted);
> }
ping
--
Best regards
Jan Dakinevich