From: Wang Kefeng Date: Fri, 16 Sep 2022 11:10:49 +0000 (+0100) Subject: ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE X-Git-Tag: v6.1~3^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14ca1a4690750bb54e1049e49f3140ef48958a6e;p=platform%2Fkernel%2Flinux-starfive.git ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE MT_MEMORY_RO is introduced by commit 598f0a99fa8a ("ARM: 9210/1: Mark the FDT_FIXED sections as shareable"), which is a readonly memory type for FDT area, but there are some different between ARM_LPAE and non-ARM_LPAE, we need to setup PMD_SECT_AP2 and L_PMD_SECT_RDONLY for MT_MEMORY_RO when ARM_LAPE enabled. non-ARM_LPAE 0xff800000-0xffa00000 2M PGD KERNEL ro NX SHD ARM_LPAE 0xff800000-0xffc00000 4M PMD RW NX SHD ARM_LPAE+fix 0xff800000-0xffc00000 4M PMD ro NX SHD Fixes: 598f0a99fa8a ("ARM: 9210/1: Mark the FDT_FIXED sections as shareable") Signed-off-by: Kefeng Wang Signed-off-by: Russell King (Oracle) --- diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index a49f0b9..463fc2a 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -300,7 +300,11 @@ static struct mem_type mem_types[] __ro_after_init = { .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_XN | L_PTE_RDONLY, .prot_l1 = PMD_TYPE_TABLE, +#ifdef CONFIG_ARM_LPAE + .prot_sect = PMD_TYPE_SECT | L_PMD_SECT_RDONLY | PMD_SECT_AP2, +#else .prot_sect = PMD_TYPE_SECT, +#endif .domain = DOMAIN_KERNEL, }, [MT_ROM] = {