[ARM] Fix slab corruption issues triggered with pud_t integration.
When the page tables are wrapped from 4 levels to 2 levels, the new
MM code requires PMD_SHIFT to match PUD_SHIFT, which must also
match PGDIR_SHIFT. If PMD_SHIFT is smaller than PUD_SHIFT, we risk
freeing a still-in-use table (== page) which can then get re-used
for the slab cache.
Testing and inspection shows that there isn't any real benefit from
keeping PMD_SHIFT set to 20.
In addition, add some comments concerning the granularity of
alloc_init_section() and fix a missing PMD assignment in the
rebooting code. Somehow we managed to get away with that, although
it is actually wrong. Maybe I've just been lucky until now.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Showing
Please register or sign in to comment