arm64: idreg-override: Create a pseudo feature for rodata=off
authorArd Biesheuvel <ardb@kernel.org>
Wed, 14 Feb 2024 12:28:58 +0000 (13:28 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 16 Feb 2024 12:42:31 +0000 (12:42 +0000)
Add rodata=off to the set of kernel command line options that is parsed
early using the CPU feature override detection code, so we can easily
refer to it when creating the kernel mapping.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20240214122845.2033971-57-ardb+git@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/cpufeature.h
arch/arm64/kernel/pi/idreg-override.c

index e309255b7f049bc8701a9ee12db4ae27e3fe1a8e..03c34242bfc75858f2d86520d4bee43bfcc9530a 100644 (file)
@@ -17,6 +17,7 @@
 
 #define ARM64_SW_FEATURE_OVERRIDE_NOKASLR      0
 #define ARM64_SW_FEATURE_OVERRIDE_HVHE         4
+#define ARM64_SW_FEATURE_OVERRIDE_RODATA_OFF   8
 
 #ifndef __ASSEMBLY__
 
index f9e05c10faab41b4a293110296c725194f7c723f..e4bcabcc6860ad2fcd90ce99bdd548c99df85db1 100644 (file)
@@ -159,6 +159,7 @@ static const struct ftr_set_desc sw_features __prel64_initconst = {
        .fields         = {
                FIELD("nokaslr", ARM64_SW_FEATURE_OVERRIDE_NOKASLR, NULL),
                FIELD("hvhe", ARM64_SW_FEATURE_OVERRIDE_HVHE, hvhe_filter),
+               FIELD("rodataoff", ARM64_SW_FEATURE_OVERRIDE_RODATA_OFF, NULL),
                {}
        },
 };
@@ -190,6 +191,7 @@ static const struct {
        { "arm64.nomops",               "id_aa64isar2.mops=0" },
        { "arm64.nomte",                "id_aa64pfr1.mte=0" },
        { "nokaslr",                    "arm64_sw.nokaslr=1" },
+       { "rodata=off",                 "arm64_sw.rodataoff=1" },
 };
 
 static int __init parse_hexdigit(const char *p, u64 *v)