|
@@ -467,7 +467,7 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
|
|
|
* We are safe now. Check whether the new pgprot is the same:
|
|
|
*/
|
|
|
old_pte = *kpte;
|
|
|
- old_prot = new_prot = req_prot = pte_pgprot(old_pte);
|
|
|
+ old_prot = req_prot = pte_pgprot(old_pte);
|
|
|
|
|
|
pgprot_val(req_prot) &= ~pgprot_val(cpa->mask_clr);
|
|
|
pgprot_val(req_prot) |= pgprot_val(cpa->mask_set);
|
|
@@ -478,12 +478,12 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
|
|
|
* a non present pmd. The canon_pgprot will clear _PAGE_GLOBAL
|
|
|
* for the ancient hardware that doesn't support it.
|
|
|
*/
|
|
|
- if (pgprot_val(new_prot) & _PAGE_PRESENT)
|
|
|
- pgprot_val(new_prot) |= _PAGE_PSE | _PAGE_GLOBAL;
|
|
|
+ if (pgprot_val(req_prot) & _PAGE_PRESENT)
|
|
|
+ pgprot_val(req_prot) |= _PAGE_PSE | _PAGE_GLOBAL;
|
|
|
else
|
|
|
- pgprot_val(new_prot) &= ~(_PAGE_PSE | _PAGE_GLOBAL);
|
|
|
+ pgprot_val(req_prot) &= ~(_PAGE_PSE | _PAGE_GLOBAL);
|
|
|
|
|
|
- new_prot = canon_pgprot(new_prot);
|
|
|
+ req_prot = canon_pgprot(req_prot);
|
|
|
|
|
|
/*
|
|
|
* old_pte points to the large page base address. So we need
|