Re: [PATCH] IPoIB: use kvzalloc to allocate an array of bucket pointers

From: HÃkon Bugge
Date: Mon Jul 16 2018 - 14:19:20 EST




> On 16 Jul 2018, at 18:19, Jan Dakinevich <jan.dakinevich@xxxxxxxxxxxxx> wrote:
>
> 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.

Only if PAGE_SIZE is 4KiB...

>> Meanwhile, this memory is not aimed for DMA operation and could be
>> safely allocated by vmalloc.
>>
>> Signed-off-by: Jan Dakinevich <jan.dakinevich@xxxxxxxxxxxxx>

lgtm,

Reviewed-by: HÃkon Bugge <haakon.bugge@xxxxxxxxxx>


Thxs, HÃkon

>> ---
>> 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
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html