iommu/omap: Correct init value of iotlb_entry valid field
authorSuman Anna <s-anna@ti.com>
Tue, 18 Mar 2014 01:31:32 +0000 (20:31 -0500)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 16 Apr 2014 14:30:13 +0000 (16:30 +0200)
The iotlb_entry field values are used directly in omap2_alloc_cr,
a function used in preparing the MMU_CAM and MMU_RAM registers.
The iotlb_entry.valid value is being set incorrectly to 1 at the
moment, and this would result in overriding the PAGESIZE bit field
of the MMU_CAM register if prefetching of the entries were to be
supported.

The bug has not caused any MMU faults due to incorrect size
programming so far as the prefetching is disabled by default. Fix
this by using the correct init value for the iotlb_entry.valid
field.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/iommu/omap-iommu.c

index 7fcbfc498fa93c2527968191e6658be99eaa7b2d..64d935b0d08e21e5cd1c660e91451a0bfee69e87 100644 (file)
@@ -1044,7 +1044,7 @@ static u32 iotlb_init_entry(struct iotlb_entry *e, u32 da, u32 pa,
 
        e->da           = da;
        e->pa           = pa;
-       e->valid        = 1;
+       e->valid        = MMU_CAM_V;
        /* FIXME: add OMAP1 support */
        e->pgsz         = flags & MMU_CAM_PGSZ_MASK;
        e->endian       = flags & MMU_RAM_ENDIAN_MASK;