Messages in this thread Patch in this message | | | From | Denis Efremov <> | Subject | [PATCH v2] ARM/dma-mapping: use kvzalloc() in __iommu_alloc_buffer() | Date | Thu, 27 Aug 2020 18:43:32 +0300 |
| |
Use kvzalloc() in __iommu_alloc_buffer() instead of open-coding it. Size computation wrapped in array_size() macro to prevent potential integer overflows.
Signed-off-by: Denis Efremov <efremov@linux.com> --- Changes in v2: - array_size() added
arch/arm/mm/dma-mapping.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 8a8949174b1c..c1f864ff7b84 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -1199,14 +1199,10 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size, { struct page **pages; int count = size >> PAGE_SHIFT; - int array_size = count * sizeof(struct page *); 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(sizeof(*pages), count), GFP_KERNEL); if (!pages) return NULL; -- 2.26.2
| |