Thread (6 messages) flat view 6 messages, 5 authors, 2013-08-29

[PATCH] arm: Prevent memory aliasing on non-LPAE kernels

From: arnd@arndb.de (Arnd Bergmann)
Date: 2013-05-30 22:24:50
Also in: linux-arm-msm, lkml

On Thursday 30 May 2013 14:45:20 Stepan Moskovchenko wrote:
 void __init early_init_dt_add_memory_arch(u64 base, u64 size)
 {
+#ifndef CONFIG_ARM_LPAE
+       if (base > ((phys_addr_t)~0)) {
+               pr_crit("Ignoring memory at 0x%08llx due to lack of LPAE support\n",
+                       base);
+               return;
+       }
+
+       if (size > ((phys_addr_t)~0))
+               size = ((phys_addr_t)~0);
+
+       /* arm_add_memory() already checks for the case of base + size > 4GB */
+#endif
        arm_add_memory(base, size);
 }
This looks wrong for the case where 'base' is between >0 and 4GB and 'size'
makes it spill over the 4GB boundary. You need to set
'size = (phys_addr_t)~0 - base' then.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help