|
@@ -464,7 +464,7 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end,
|
|
|
pages++;
|
|
|
spin_lock(&init_mm.page_table_lock);
|
|
|
set_pte((pte_t *)pmd,
|
|
|
- pfn_pte(address >> PAGE_SHIFT,
|
|
|
+ pfn_pte((address & PMD_MASK) >> PAGE_SHIFT,
|
|
|
__pgprot(pgprot_val(prot) | _PAGE_PSE)));
|
|
|
spin_unlock(&init_mm.page_table_lock);
|
|
|
last_map_addr = next;
|
|
@@ -541,7 +541,8 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
|
|
|
pages++;
|
|
|
spin_lock(&init_mm.page_table_lock);
|
|
|
set_pte((pte_t *)pud,
|
|
|
- pfn_pte(addr >> PAGE_SHIFT, PAGE_KERNEL_LARGE));
|
|
|
+ pfn_pte((addr & PUD_MASK) >> PAGE_SHIFT,
|
|
|
+ PAGE_KERNEL_LARGE));
|
|
|
spin_unlock(&init_mm.page_table_lock);
|
|
|
last_map_addr = next;
|
|
|
continue;
|