Hi,
The function flush_iotlb_page is not loading into the CAM register the
entry to be removed, so it function removes the last entry loaded into the CAM
register, so it is leaving a mapped address which maybe would not be validad.
>From 14aef69914856e4bc679bdacfaf48d9214f8dfc9 Mon Sep 17 00:00:00 2001
From: Fernando Guzman Lugo
Date: Wed, 10 Jun 2009 13:32:14 -0500
Subject: [PATCH] IOMMU: function flush_iotlb_page is not flushing correct entry
The function flush_iotlb_page is not loading the CAM register with
the correct entry to be flushed, so it is flushing other entry
Signed-off-by: Fernando Guzman Lugo
---
arch/arm/plat-omap/iommu.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
mode change 100644 => 100755 arch/arm/plat-omap/iommu.c
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
old mode 100644
new mode 100755
index 4cf449f..4a03013
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -298,7 +298,7 @@ void flush_iotlb_page(struct iommu *obj, u32 da)
if ((start <= da) && (da < start + bytes)) {
dev_dbg(obj->dev, "%s: %08x<=%08x(%x)\n",
__func__, start, da, bytes);
-
+ iotlb_load_cr(obj, &cr);
iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY);
}
}
--
1.5.6.4
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html