[ARM] msm: iommu_domains: replace vmalloc with kmalloc
There is no point using vmalloc for small temporary allocations. kmalloc will
allocate more quickly and will not fragment the vmalloc space.
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/arch/arm/mach-msm/iommu_domains.c b/arch/arm/mach-msm/iommu_domains.c
index e92b5c5..8e91b4f 100644
--- a/arch/arm/mach-msm/iommu_domains.c
+++ b/arch/arm/mach-msm/iommu_domains.c
@@ -15,10 +15,8 @@
#include <linux/iommu.h>
#include <linux/memory_alloc.h>
#include <linux/platform_device.h>
-#include <linux/vmalloc.h>
#include <linux/rbtree.h>
#include <linux/slab.h>
-#include <linux/vmalloc.h>
#include <asm/sizes.h>
#include <asm/page.h>
#include <mach/iommu.h>
@@ -56,7 +54,7 @@
unsigned int nrpages = PFN_ALIGN(size) >> PAGE_SHIFT;
struct page *dummy_page = phys_to_page(phy_addr);
- sglist = vmalloc(sizeof(*sglist) * nrpages);
+ sglist = kmalloc(sizeof(*sglist) * nrpages, GFP_KERNEL);
if (!sglist) {
ret = -ENOMEM;
goto out;
@@ -73,7 +71,7 @@
__func__, start_iova, domain);
}
- vfree(sglist);
+ kfree(sglist);
} else {
unsigned long order = get_order(page_size);
unsigned long aligned_size = ALIGN(size, page_size);
@@ -128,7 +126,7 @@
int prot = IOMMU_WRITE | IOMMU_READ;
prot |= cached ? IOMMU_CACHE : 0;
- sglist = vmalloc(sizeof(*sglist));
+ sglist = kmalloc(sizeof(*sglist), GFP_KERNEL);
if (!sglist) {
ret = -ENOMEM;
goto err1;
@@ -145,7 +143,7 @@
__func__, iova, domain);
}
- vfree(sglist);
+ kfree(sglist);
err1:
return ret;