3f5ab76816
The previous expressions were wrong which made free_pmd_range() explode when using anything other than 4KB pages (which is why 8KB and 64KB pages were disabled with the 3-level page table layout). The problem was that pmd_offset() was returning an index of non-zero when it should have been returning 0. This non-zero offset was used to calculate the address of the pmd table to free in free_pmd_range(), which ended up trying to free an object that was not aligned on a page boundary. Now 3-level page tables should work with 4KB, 8KB and 64KB pages. Signed-off-by: Matt Fleming <matt@console-pimps.org> |
||
---|---|---|
.. | ||
asids-debugfs.c | ||
cache-debugfs.c | ||
cache-sh2.c | ||
cache-sh2a.c | ||
cache-sh3.c | ||
cache-sh4.c | ||
cache-sh5.c | ||
cache-sh7705.c | ||
cache.c | ||
consistent.c | ||
extable_32.c | ||
extable_64.c | ||
fault_32.c | ||
fault_64.c | ||
flush-sh4.c | ||
hugetlbpage.c | ||
init.c | ||
ioremap_32.c | ||
ioremap_64.c | ||
Kconfig | ||
kmap.c | ||
Makefile | ||
mmap.c | ||
nommu.c | ||
numa.c | ||
pmb.c | ||
tlb-pteaex.c | ||
tlb-sh3.c | ||
tlb-sh4.c | ||
tlb-sh5.c | ||
tlbflush_32.c | ||
tlbflush_64.c |