The following commit has been merged in the linux branch: commit dcc730dc9d7614fdaf6bce73d6e8ffe47c8820b1 Author: Hiroshi DOYU Hiroshi.DOYU@nokia.com Date: Thu Oct 22 14:46:32 2009 -0700
omap: iommu: fix wrong condition check for SUPERSECTION
A bit (2 << 0) is set both on SECTION and SUPERSECTION. To identify SUPERSECTION correctly, other bits should be compared too.
Reported-by: "Srinivas Pulukuru" srinivas.pulukuru@ti.com Signed-off-by: Hiroshi DOYU Hiroshi.DOYU@nokia.com Signed-off-by: Tony Lindgren tony@atomide.com
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c index 4b60127..94584f1 100644 --- a/arch/arm/plat-omap/iommu.c +++ b/arch/arm/plat-omap/iommu.c @@ -664,7 +664,7 @@ static size_t iopgtable_clear_entry_core(struct iommu *obj, u32 da) nent = 1; /* for the next L1 entry */ } else { bytes = IOPGD_SIZE; - if (*iopgd & IOPGD_SUPER) { + if ((*iopgd & IOPGD_SUPER) == IOPGD_SUPER) { nent *= 16; /* rewind to the 1st entry */ iopgd = (u32 *)((u32)iopgd & IOSUPER_MASK);