aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/iommu.c
diff options
context:
space:
mode:
authorMartin Hostettler <martin@neutronstar.dyndns.org>2011-02-24 12:51:31 -0800
committerTony Lindgren <tony@atomide.com>2011-02-24 12:51:31 -0800
commitef4815ab1ff10d642c21ef92faa6544934bc78d1 (patch)
treea1eb3c43e281203282f6b0dc193aa07082357df0 /arch/arm/plat-omap/iommu.c
parent7cab8713b1ed0dab08ad6458f92a40b7ff4be619 (diff)
downloadkernel_samsung_smdk4412-ef4815ab1ff10d642c21ef92faa6544934bc78d1.zip
kernel_samsung_smdk4412-ef4815ab1ff10d642c21ef92faa6544934bc78d1.tar.gz
kernel_samsung_smdk4412-ef4815ab1ff10d642c21ef92faa6544934bc78d1.tar.bz2
omap: iommu: Gracefully fail iommu_enable if no arch_iommu is registered
In a modular build of the iommu code it's possible that the arch iommu code isn't loaded when trying to enable the iommu. Instead of blindly following a null pointer return -NODEV in that case. Signed-off-by: Martin Hostettler <martin@neutronstar.dyndns.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/plat-omap/iommu.c')
-rw-r--r--arch/arm/plat-omap/iommu.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index b1107c0..3d8f55e 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -104,6 +104,9 @@ static int iommu_enable(struct iommu *obj)
if (!obj)
return -EINVAL;
+ if (!arch_iommu)
+ return -ENODEV;
+
clk_enable(obj->clk);
err = arch_iommu->enable(obj);