summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhouyi Zhou2014-03-05 11:20:19 +0100
committerJoerg Roedel2014-03-05 23:02:40 +0100
commite28045ab2e2a8e27d08275bf70be33868beba8fd (patch)
treef17793b32ff1e67170595b440d9d84dd73e3cfb0
parentiommu/omap: Allocate archdata on the fly for DT-based devices (diff)
downloadkernel-qcow2-linux-e28045ab2e2a8e27d08275bf70be33868beba8fd.tar.gz
kernel-qcow2-linux-e28045ab2e2a8e27d08275bf70be33868beba8fd.tar.xz
kernel-qcow2-linux-e28045ab2e2a8e27d08275bf70be33868beba8fd.zip
iommu/omap: Check for NULL in iopte_free()
The iopte_free() function should check for NULL because kmem_cache_free() will panic on NULL argument. Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn> Signed-off-by: Joerg Roedel <joro@8bytes.org>
-rw-r--r--drivers/iommu/omap-iommu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index 8acea87cbc0e..7fcbfc498fa9 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -520,7 +520,8 @@ static void flush_iopte_range(u32 *first, u32 *last)
static void iopte_free(u32 *iopte)
{
/* Note: freed iopte's must be clean ready for re-use */
- kmem_cache_free(iopte_cachep, iopte);
+ if (iopte)
+ kmem_cache_free(iopte_cachep, iopte);
}
static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, u32 da)