aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/pgtable.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-01-13 05:11:14 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-01-13 05:11:14 -0500
commit782bb5a532f883540bf403afb19f735a4eefd95b (patch)
treec2eec8aff6797fda269d4f1c3d4ed19ff1d584d7 /arch/sh/mm/pgtable.c
parent206582c3161f165f5bf49ececa962c5f95fdf0a3 (diff)
sh: default to extended TLB support.
All SH-X2 and SH-X3 parts support an extended TLB mode, which has been left as experimental since support was originally merged. Now that it's had some time to stabilize and get some exposure to various platforms, we can drop it as an option and default enable it across the board. This is also good future proofing for newer parts that will drop support for the legacy TLB mode completely. This will also force 3-level page tables for all newer parts, which is necessary both for the varying page sizes and larger memories. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/pgtable.c')
-rw-r--r--arch/sh/mm/pgtable.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/sh/mm/pgtable.c b/arch/sh/mm/pgtable.c
index e1bc5483cc07..6f21fb1d8726 100644
--- a/arch/sh/mm/pgtable.c
+++ b/arch/sh/mm/pgtable.c
@@ -3,8 +3,7 @@
3#define PGALLOC_GFP GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO 3#define PGALLOC_GFP GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO
4 4
5static struct kmem_cache *pgd_cachep; 5static struct kmem_cache *pgd_cachep;
6 6#if PAGETABLE_LEVELS > 2
7#ifdef CONFIG_PGTABLE_LEVELS_3
8static struct kmem_cache *pmd_cachep; 7static struct kmem_cache *pmd_cachep;
9#endif 8#endif
10 9
@@ -22,7 +21,7 @@ void pgtable_cache_init(void)
22 pgd_cachep = kmem_cache_create("pgd_cache", 21 pgd_cachep = kmem_cache_create("pgd_cache",
23 PTRS_PER_PGD * (1<<PTE_MAGNITUDE), 22 PTRS_PER_PGD * (1<<PTE_MAGNITUDE),
24 PAGE_SIZE, SLAB_PANIC, pgd_ctor); 23 PAGE_SIZE, SLAB_PANIC, pgd_ctor);
25#ifdef CONFIG_PGTABLE_LEVELS_3 24#if PAGETABLE_LEVELS > 2
26 pmd_cachep = kmem_cache_create("pmd_cache", 25 pmd_cachep = kmem_cache_create("pmd_cache",
27 PTRS_PER_PMD * (1<<PTE_MAGNITUDE), 26 PTRS_PER_PMD * (1<<PTE_MAGNITUDE),
28 PAGE_SIZE, SLAB_PANIC, NULL); 27 PAGE_SIZE, SLAB_PANIC, NULL);
@@ -39,7 +38,7 @@ void pgd_free(struct mm_struct *mm, pgd_t *pgd)
39 kmem_cache_free(pgd_cachep, pgd); 38 kmem_cache_free(pgd_cachep, pgd);
40} 39}
41 40
42#ifdef CONFIG_PGTABLE_LEVELS_3 41#if PAGETABLE_LEVELS > 2
43void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) 42void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
44{ 43{
45 set_pud(pud, __pud((unsigned long)pmd)); 44 set_pud(pud, __pud((unsigned long)pmd));
@@ -54,4 +53,4 @@ void pmd_free(struct mm_struct *mm, pmd_t *pmd)
54{ 53{
55 kmem_cache_free(pmd_cachep, pmd); 54 kmem_cache_free(pmd_cachep, pmd);
56} 55}
57#endif /* CONFIG_PGTABLE_LEVELS_3 */ 56#endif /* PAGETABLE_LEVELS > 2 */