diff options
author | Matt Fleming <matt@console-pimps.org> | 2009-12-24 20:38:45 +0000 |
---|---|---|
committer | Matt Fleming <matt@console-pimps.org> | 2010-01-02 00:51:45 +0000 |
commit | 3f5ab768164df9a44721660b96e0accb92eb2c24 (patch) | |
tree | ef4fb658cd28994fad4046844bc51a388bb6447b /arch/sh/mm/Kconfig | |
parent | e591a517230a97e93f5edd19e7bef7ec8d22ac2b (diff) | |
download | op-kernel-dev-3f5ab768164df9a44721660b96e0accb92eb2c24.zip op-kernel-dev-3f5ab768164df9a44721660b96e0accb92eb2c24.tar.gz |
sh: Correct the PTRS_PER_PMD and PMD_SHIFT values
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>
Diffstat (limited to 'arch/sh/mm/Kconfig')
-rw-r--r-- | arch/sh/mm/Kconfig | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index b3f6c1a..1b43648 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig @@ -220,7 +220,7 @@ config PAGE_SIZE_4KB config PAGE_SIZE_8KB bool "8kB" - depends on !MMU || X2TLB && !PGTABLE_LEVELS_3 + depends on !MMU || X2TLB help This enables 8kB pages as supported by SH-X2 and later MMUs. @@ -232,7 +232,7 @@ config PAGE_SIZE_16KB config PAGE_SIZE_64KB bool "64kB" - depends on !MMU || CPU_SH4 && !PGTABLE_LEVELS_3 || CPU_SH5 + depends on !MMU || CPU_SH4 || CPU_SH5 help This enables support for 64kB pages, possible on all SH-4 CPUs and later. |