Re: [PATCH v2 2/4] arm64: remove CONFIG_RODATA_FULL_DEFAULT_ENABLED

From: Anshuman Khandual
Date: Thu Dec 05 2024 - 23:44:55 EST


On 11/26/24 14:26, Huang Shijie wrote:
> The default kernel is rodata=on which means

Right but this is true only after the update in the series.

if (!strcmp(arg, "on")) {
rodata_enabled = rodata_full = true;
return true;
}

rodata_full is always "true" via 'rodata=on' and does not depend
on the config RODATA_FULL_DEFAULT_ENABLED anymore, so it can be
dropped. Please update this commit message with these context as
well.

> CONFIG_RODATA_FULL_DEFAULT_ENABLED is always enabled by default.
> So we can remove CONFIG_RODATA_FULL_DEFAULT_ENABLED now.
>
> Signed-off-by: Huang Shijie <shijie@xxxxxxxxxxxxxxxxxxxxxx>
> ---
> arch/arm64/Kconfig | 14 --------------
> arch/arm64/mm/pageattr.c | 2 +-
> 2 files changed, 1 insertion(+), 15 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 4316b1fe8bf8..a9ca305a31d8 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -1653,20 +1653,6 @@ config MITIGATE_SPECTRE_BRANCH_HISTORY
> When taking an exception from user-space, a sequence of branches
> or a firmware call overwrites the branch history.
>
> -config RODATA_FULL_DEFAULT_ENABLED
> - bool "Apply r/o permissions of VM areas also to their linear aliases"
> - default y
> - help
> - Apply read-only attributes of VM areas to the linear alias of
> - the backing pages as well. This prevents code or read-only data
> - from being modified (inadvertently or intentionally) via another
> - mapping of the same memory page. This additional enhancement can
> - be turned off at runtime by passing rodata=[off|on] (and turned on
> - with rodata=full if this option is set to 'n')
> -
> - This requires the linear region to be mapped down to pages,
> - which may adversely affect performance in some cases.
> -
> config ARM64_SW_TTBR0_PAN
> bool "Emulate Privileged Access Never using TTBR0_EL1 switching"
> depends on !KCSAN
> diff --git a/arch/arm64/mm/pageattr.c b/arch/arm64/mm/pageattr.c
> index 39fd1f7ff02a..6eef08d8451e 100644
> --- a/arch/arm64/mm/pageattr.c
> +++ b/arch/arm64/mm/pageattr.c
> @@ -20,7 +20,7 @@ struct page_change_data {
> pgprot_t clear_mask;
> };
>
> -bool rodata_full __ro_after_init = IS_ENABLED(CONFIG_RODATA_FULL_DEFAULT_ENABLED);
> +bool rodata_full __ro_after_init = true;
>
> bool can_set_direct_map(void)
> {

This patch can still follow the first one but after folding in the
third patch.