UPSTREAM: allow arch specific handling of ro_after_init data section

commit c74ba8b3480d ("arch: Introduce post-init read-only memory")
introduced the __ro_after_init attribute which allows to add variables
to the ro_after_init data section.

This new section was added to rodata, even though it contains writable
data. This in turn causes problems on architectures which mark the
page table entries read-only that point to rodata very early.

This patch allows architectures to implement an own handling of the
.data..ro_after_init section.
Usually that would be:
- mark the rodata section read-only very early
- mark the ro_after_init section read-only within mark_rodata_ro

Signed-off-by: Heiko Carstens <>
Reviewed-by: Kees Cook <>
Signed-off-by: Martin Schwidefsky <>
(cherry picked from commit 32fb2fc5c357fb99616bbe100dbcb27bc7f5d045)
Signed-off-by: Prashant Malani <>

Change-Id: I874fa730f40fad7f00234c21bc2383ab811fe703
Commit-Ready: Prashant Malani <>
Tested-by: Prashant Malani <>
Reviewed-by: Kees Cook <>
1 file changed