[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y6FHN9RyUKsQLo0i@qemulion>
Date: Tue, 20 Dec 2022 10:55:11 +0530
From: Deepak R Varma <drv@...lo.com>
To: Russell King <linux@...linux.org.uk>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc: Saurabh Singh Sengar <ssengar@...rosoft.com>,
Praveen Kumar <kumarpraveen@...ux.microsoft.com>, drv@...lo.com
Subject: [PATCH] ARM/dma-mapping: use kvzalloc for fallback memory allocation
need
When the memory sizes are not known upfront, it is preferred to use the
kvzalloc helper function instead of direct conditional evaluation of
size and kzalloc/vzalloc fallback design. The kvzalloc helper function
in this case is more efficient as it avoids indefinite kzalloc retries
when a small memory size is needed but is unavailable.
This LWN article has further details on the advantages of using
kvzalloc in case of fallback memory allocation needs:
https://lwn.net/Articles/711653/
This patch proposal is based on following Coccinelle warning using the
kvmalloc.cocci semantic patch.
arch/arm/mm/dma-mapping.c:858:28-29: WARNING opportunity for kvmalloc
Signed-off-by: Deepak R Varma <drv@...lo.com>
---
Note: The patch proposal is compile tested only.
arch/arm/mm/dma-mapping.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index c135f6e37a00..2b79af377a81 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -855,10 +855,7 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size,
int i = 0;
int order_idx = 0;
- if (array_size <= PAGE_SIZE)
- pages = kzalloc(array_size, GFP_KERNEL);
- else
- pages = vzalloc(array_size);
+ pages = kvzalloc(array_size, GFP_KERNEL);
if (!pages)
return NULL;
--
2.34.1
Powered by blists - more mailing lists