]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE
authorWang Kefeng <wangkefeng.wang@huawei.com>
Fri, 16 Sep 2022 11:10:49 +0000 (12:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Oct 2022 11:22:22 +0000 (13:22 +0200)
[ Upstream commit 7dce91b9121e660fbb22d061a94ccd1a3ec795fb ]

MT_MEMORY_RO is introduced by commit dfe4cb6c3e20 ("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: dfe4cb6c3e20 ("ARM: 9210/1: Mark the FDT_FIXED sections as shareable")
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm/mm/mmu.c

index 463cbb0631be2952ddff5bf0509ee7386bd181da..5becec7903794a61765ea6c22e7368147bd65c3b 100644 (file)
@@ -320,7 +320,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] = {