[S390] fix page table walk for changing page attributes
The page table walk for changing page attributes used the wrong address for pgd/pud/pmd lookups if the range was bigger than a pmd entry. Fix the lookup by using the correct address. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
c708c57e24
commit
e4c031b4f2
1 changed files with 3 additions and 2 deletions
|
@ -24,12 +24,13 @@ static void change_page_attr(unsigned long addr, int numpages,
|
||||||
WARN_ON_ONCE(1);
|
WARN_ON_ONCE(1);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ptep = pte_offset_kernel(pmdp, addr + i * PAGE_SIZE);
|
ptep = pte_offset_kernel(pmdp, addr);
|
||||||
|
|
||||||
pte = *ptep;
|
pte = *ptep;
|
||||||
pte = set(pte);
|
pte = set(pte);
|
||||||
ptep_invalidate(&init_mm, addr + i * PAGE_SIZE, ptep);
|
ptep_invalidate(&init_mm, addr, ptep);
|
||||||
*ptep = pte;
|
*ptep = pte;
|
||||||
|
addr += PAGE_SIZE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue