[POWERPC] Fix swapper_pg_dir size when CONFIG_PTE_64BIT=y on FSL_BOOKE
The size of swapper_pg_dir is 8k instead of 4k when using 64-bit PTEs (CONFIG_PTE_64BIT). This was reported by Cedric Hombourger <chombourger@gmail.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
Родитель
7e1fb765c6
Коммит
bee86f14d5
|
@ -326,8 +326,7 @@ int main(void)
|
||||||
DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START));
|
DEFINE(VMALLOC_START_VSID, KERNEL_VSID(VMALLOC_START));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PPC64
|
|
||||||
DEFINE(PGD_TABLE_SIZE, PGD_TABLE_SIZE);
|
DEFINE(PGD_TABLE_SIZE, PGD_TABLE_SIZE);
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1311,7 +1311,7 @@ empty_zero_page:
|
||||||
|
|
||||||
.globl swapper_pg_dir
|
.globl swapper_pg_dir
|
||||||
swapper_pg_dir:
|
swapper_pg_dir:
|
||||||
.space 4096
|
.space PGD_TABLE_SIZE
|
||||||
|
|
||||||
.globl intercept_table
|
.globl intercept_table
|
||||||
intercept_table:
|
intercept_table:
|
||||||
|
|
|
@ -994,7 +994,7 @@ empty_zero_page:
|
||||||
.space 4096
|
.space 4096
|
||||||
.globl swapper_pg_dir
|
.globl swapper_pg_dir
|
||||||
swapper_pg_dir:
|
swapper_pg_dir:
|
||||||
.space 4096
|
.space PGD_TABLE_SIZE
|
||||||
|
|
||||||
|
|
||||||
/* Stack for handling critical exceptions from kernel mode */
|
/* Stack for handling critical exceptions from kernel mode */
|
||||||
|
|
|
@ -722,7 +722,7 @@ empty_zero_page:
|
||||||
*/
|
*/
|
||||||
.globl swapper_pg_dir
|
.globl swapper_pg_dir
|
||||||
swapper_pg_dir:
|
swapper_pg_dir:
|
||||||
.space 8192
|
.space PGD_TABLE_SIZE
|
||||||
|
|
||||||
/* Reserved 4k for the critical exception stack & 4k for the machine
|
/* Reserved 4k for the critical exception stack & 4k for the machine
|
||||||
* check stack per CPU for kernel mode exceptions */
|
* check stack per CPU for kernel mode exceptions */
|
||||||
|
|
|
@ -1035,7 +1035,7 @@ empty_zero_page:
|
||||||
.space 4096
|
.space 4096
|
||||||
.globl swapper_pg_dir
|
.globl swapper_pg_dir
|
||||||
swapper_pg_dir:
|
swapper_pg_dir:
|
||||||
.space 4096
|
.space PGD_TABLE_SIZE
|
||||||
|
|
||||||
/* Reserved 4k for the critical exception stack & 4k for the machine
|
/* Reserved 4k for the critical exception stack & 4k for the machine
|
||||||
* check stack per CPU for kernel mode exceptions */
|
* check stack per CPU for kernel mode exceptions */
|
||||||
|
|
|
@ -86,6 +86,11 @@ extern int icache_44x_need_flush;
|
||||||
* entries per page directory level: our page-table tree is two-level, so
|
* entries per page directory level: our page-table tree is two-level, so
|
||||||
* we don't really have any PMD directory.
|
* we don't really have any PMD directory.
|
||||||
*/
|
*/
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
#define PTE_TABLE_SIZE (sizeof(pte_t) << PTE_SHIFT)
|
||||||
|
#define PGD_TABLE_SIZE (sizeof(pgd_t) << (32 - PGDIR_SHIFT))
|
||||||
|
#endif /* __ASSEMBLY__ */
|
||||||
|
|
||||||
#define PTRS_PER_PTE (1 << PTE_SHIFT)
|
#define PTRS_PER_PTE (1 << PTE_SHIFT)
|
||||||
#define PTRS_PER_PMD 1
|
#define PTRS_PER_PMD 1
|
||||||
#define PTRS_PER_PGD (1 << (32 - PGDIR_SHIFT))
|
#define PTRS_PER_PGD (1 << (32 - PGDIR_SHIFT))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче