On Sat, May 03, 2025 at 11:06:03AM +0100, Catalin Marinas wrote:
On Fri, May 02, 2025 at 07:14:12PM +0100, Yeoreum Yun wrote:
On Fri, May 02, 2025 at 06:41:33PM +0200, Ard Biesheuvel wrote:
Making arm64_use_ng_mappings __ro_after_init seems like a useful change by itself, so I am not objecting to that. But we don't solve it more fundamentally, please at least add a big fat comment why it is important that the variable remains there.
Maybe something like the section reference checker we use for __init - verify that the early C code does not refer anything in the BSS section.
Maybe but it would be better to be checked at compile time (I don't know it's possible) otherwise, early C code writer should check mandatroy by calling is_kernel_bss_data() (not exist) for data it refers.
This would be compile time (or rather final link time). See scripts/mod/modpost.c (the sectioncheck[] array) on how we check if, for example, a .text section references a .init one. We could move the whole pi code to its own section (e.g. .init.nommu.*) and add modpost checks for references to the bss or other sections.
Oh, only thought about some compiler option. and Thanks to let me know!
-- Catalin
-- Sincerely, Yeoreum Yun