|
@@ -396,7 +396,7 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
|
|
|
pte_t new_pte, old_pte, *tmp;
|
|
|
pgprot_t old_prot, new_prot, req_prot;
|
|
|
int i, do_split = 1;
|
|
|
- unsigned int level;
|
|
|
+ enum pg_level level;
|
|
|
|
|
|
if (cpa->force_split)
|
|
|
return 1;
|
|
@@ -412,15 +412,12 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
|
|
|
|
|
|
switch (level) {
|
|
|
case PG_LEVEL_2M:
|
|
|
- psize = PMD_PAGE_SIZE;
|
|
|
- pmask = PMD_PAGE_MASK;
|
|
|
- break;
|
|
|
#ifdef CONFIG_X86_64
|
|
|
case PG_LEVEL_1G:
|
|
|
- psize = PUD_PAGE_SIZE;
|
|
|
- pmask = PUD_PAGE_MASK;
|
|
|
- break;
|
|
|
#endif
|
|
|
+ psize = page_level_size(level);
|
|
|
+ pmask = page_level_mask(level);
|
|
|
+ break;
|
|
|
default:
|
|
|
do_split = -EINVAL;
|
|
|
goto out_unlock;
|