aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-09-27 00:19:46 -0400
committerDavid S. Miller <davem@davemloft.net>2014-10-05 19:53:38 -0400
commitac55c768143aa34cc3789c4820cbb0809a76fd9c (patch)
treef6bb7af5b71e7935169a778e3f7e7694fbd1416f /arch/sparc/kernel
parent473ad7f4fb005d1bb727e4ef27d370d28703a062 (diff)
sparc64: Switch to 4-level page tables.
This has become necessary with chips that support more than 43-bits of physical addressing. Based almost entirely upon a patch by Bob Picco. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Bob Picco <bob.picco@oracle.com>
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r--arch/sparc/kernel/smp_64.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index f7ba87543e5f..c9300bfaee5a 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -1467,6 +1467,13 @@ static void __init pcpu_populate_pte(unsigned long addr)
1467 pud_t *pud; 1467 pud_t *pud;
1468 pmd_t *pmd; 1468 pmd_t *pmd;
1469 1469
1470 if (pgd_none(*pgd)) {
1471 pud_t *new;
1472
1473 new = __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, PAGE_SIZE);
1474 pgd_populate(&init_mm, pgd, new);
1475 }
1476
1470 pud = pud_offset(pgd, addr); 1477 pud = pud_offset(pgd, addr);
1471 if (pud_none(*pud)) { 1478 if (pud_none(*pud)) {
1472 pmd_t *new; 1479 pmd_t *new;