|
@@ -598,7 +598,6 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
|
|
|
req_prot = pgprot_clear_protnone_bits(req_prot);
|
|
|
if (pgprot_val(req_prot) & _PAGE_PRESENT)
|
|
|
pgprot_val(req_prot) |= _PAGE_PSE;
|
|
|
- req_prot = canon_pgprot(req_prot);
|
|
|
|
|
|
/*
|
|
|
* old_pfn points to the large page base pfn. So we need
|
|
@@ -718,7 +717,7 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
|
|
|
*/
|
|
|
pfn = ref_pfn;
|
|
|
for (i = 0; i < PTRS_PER_PTE; i++, pfn += pfninc)
|
|
|
- set_pte(&pbase[i], pfn_pte(pfn, canon_pgprot(ref_prot)));
|
|
|
+ set_pte(&pbase[i], pfn_pte(pfn, ref_prot));
|
|
|
|
|
|
if (virt_addr_valid(address)) {
|
|
|
unsigned long pfn = PFN_DOWN(__pa(address));
|
|
@@ -935,7 +934,6 @@ static void populate_pte(struct cpa_data *cpa,
|
|
|
pte = pte_offset_kernel(pmd, start);
|
|
|
|
|
|
pgprot = pgprot_clear_protnone_bits(pgprot);
|
|
|
- pgprot = canon_pgprot(pgprot);
|
|
|
|
|
|
while (num_pages-- && start < end) {
|
|
|
set_pte(pte, pfn_pte(cpa->pfn, pgprot));
|
|
@@ -1234,7 +1232,7 @@ repeat:
|
|
|
* after all we're only going to change it's attributes
|
|
|
* not the memory it points to
|
|
|
*/
|
|
|
- new_pte = pfn_pte(pfn, canon_pgprot(new_prot));
|
|
|
+ new_pte = pfn_pte(pfn, new_prot);
|
|
|
cpa->pfn = pfn;
|
|
|
/*
|
|
|
* Do we really change anything ?
|