Shared vmemmap tail pages can also be installed through the powerpc radix vmemmap populate path.
Map reused tail pages with PAGE_KERNEL_RO so writes to shared tail vmemmap entries fault immediately instead of silently corrupting shared metadata. Signed-off-by: Muchun Song <[email protected]> --- arch/powerpc/mm/book3s64/radix_pgtable.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c index 18b24bb891b7..4c3d027c823c 100644 --- a/arch/powerpc/mm/book3s64/radix_pgtable.c +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c @@ -1053,7 +1053,8 @@ static pte_t * __meminit radix__vmemmap_pte_populate(pmd_t *pmdp, unsigned long } VM_BUG_ON(!PAGE_ALIGNED(addr)); - entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL); + entry = pfn_pte(__pa(p) >> PAGE_SHIFT, + reuse ? PAGE_KERNEL_RO : PAGE_KERNEL); set_pte_at(&init_mm, addr, pte, entry); asm volatile("ptesync": : :"memory"); } -- 2.54.0
