Fix the pte programming to set the page attributes correctly
by replacing the bitwise check with an explicit values check.
Otherwise, 16MB entries will be erroneously programmed like
4KB entries, which is not what the hardware expects.
Signed-off-by: Suman Anna <[email protected]>
Acked-by: Hiroshi DOYU <[email protected]>
Signed-off-by: Ohad Ben-Cohen <[email protected]>
attr = e->mixed << 5;
attr |= e->endian;
attr |= e->elsz >> 3;
- attr <<= ((e->pgsz & MMU_CAM_PGSZ_4K) ? 0 : 6);
-
+ attr <<= (((e->pgsz == MMU_CAM_PGSZ_4K) ||
+ (e->pgsz == MMU_CAM_PGSZ_64K)) ? 0 : 6);
return attr;
}