diff options
Diffstat (limited to 'arch/x86/mm/pageattr.c')
| -rw-r--r-- | arch/x86/mm/pageattr.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 7233bd7e357b..9c4294986af7 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
| @@ -482,6 +482,13 @@ static int split_large_page(pte_t *kpte, unsigned long address) | |||
| 482 | pbase = (pte_t *)page_address(base); | 482 | pbase = (pte_t *)page_address(base); |
| 483 | paravirt_alloc_pte(&init_mm, page_to_pfn(base)); | 483 | paravirt_alloc_pte(&init_mm, page_to_pfn(base)); |
| 484 | ref_prot = pte_pgprot(pte_clrhuge(*kpte)); | 484 | ref_prot = pte_pgprot(pte_clrhuge(*kpte)); |
| 485 | /* | ||
| 486 | * If we ever want to utilize the PAT bit, we need to | ||
| 487 | * update this function to make sure it's converted from | ||
| 488 | * bit 12 to bit 7 when we cross from the 2MB level to | ||
| 489 | * the 4K level: | ||
| 490 | */ | ||
| 491 | WARN_ON_ONCE(pgprot_val(ref_prot) & _PAGE_PAT_LARGE); | ||
| 485 | 492 | ||
| 486 | #ifdef CONFIG_X86_64 | 493 | #ifdef CONFIG_X86_64 |
| 487 | if (level == PG_LEVEL_1G) { | 494 | if (level == PG_LEVEL_1G) { |
