map_lowmem​---something is wrong for LPAE?

sen wang wangsen.linux at gmail.com
Mon Apr 28 02:42:39 PDT 2014


arch/arm/mm/mmu.c

static void __init map_lowmem(void)
{
 ...
 unsigned long kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
 unsigned long kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);

 /*the result of the "round_down" "round_down" is 64bit. but the
"unsigned long" on a cortex A15/A9/A8/... is 32bit!*/

...

/*and the "end", "start" is also 64bit......,  for a machine with
phymem >4G,....!*/

if (end < kernel_x_start || start >= kernel_x_end) {...

}

...


}



More information about the linux-arm-kernel mailing list