Re: [PATCH] powerpc/fsl_book3e: Don't set rodata RO too early
From: Guenter Roeck <linux@roeck-us.net>
Date: 2022-05-19 18:29:45
Also in:
lkml
From: Guenter Roeck <linux@roeck-us.net>
Date: 2022-05-19 18:29:45
Also in:
lkml
On Thu, May 19, 2022 at 07:24:15PM +0200, Christophe Leroy wrote:
On fsl_book3e, rodata is set read-only at the same time as init text is set NX at the end of init. That's too early. As both action are performed at the same time, delay both actions to the time rodata is expected to be made read-only. It means we will have a small window with init mem freed but still executable. It shouldn't be an issue though, especially because the said memory gets poisoned and should therefore result to a bad instruction fault in case it gets executer.
executed
mmu_mark_initmem_nx() is bailing out before doing anything when
CONFIG_STRICT_KERNEL_RWX is not selected or rodata_enabled is false.
mmu_mark_rodata_ro() is called only when CONFIG_STRICT_KERNEL_RWX
is selected and rodata_enabled is true so this is equivalent.
Move code from mmu_mark_initmem_nx() into mmu_mark_rodata_ro() and
remove the call to strict_kernel_rwx_enabled() which is not needed
anymore.
Reported-by: Guenter Roeck <linux@roeck-us.net>
Fixes: d5970045cf9e ("powerpc/fsl_booke: Update of TLBCAMs after init")
Signed-off-by: Christophe Leroy <redacted>Tested-by: Guenter Roeck <linux@roeck-us.net> Guenter