parisc: BTLB: Fix crash when setting up BTLB at CPU bringup
authorHelge Deller <deller@gmx.de>
Wed, 31 Jan 2024 12:37:25 +0000 (13:37 +0100)
committerHelge Deller <deller@gmx.de>
Wed, 31 Jan 2024 12:51:26 +0000 (13:51 +0100)
When using hotplug and bringing up a 32-bit CPU, ask the firmware about the
BTLB information to set up the static (block) TLB entries.

For that write access to the static btlb_info struct is needed, but
since it is marked __ro_after_init the kernel segfaults with missing
write permissions.

Fix the crash by dropping the __ro_after_init annotation.

Fixes: e5ef93d02d6c ("parisc: BTLB: Initialize BTLB tables at CPU startup")
Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v6.6+
arch/parisc/kernel/cache.c

index 5552602fcaef159ed2dc419a76af483bc7ea1cc3..422f3e1e6d9cad718c264c7d7c9bd30872846555 100644 (file)
@@ -58,7 +58,7 @@ int pa_serialize_tlb_flushes __ro_after_init;
 
 struct pdc_cache_info cache_info __ro_after_init;
 #ifndef CONFIG_PA20
-struct pdc_btlb_info btlb_info __ro_after_init;
+struct pdc_btlb_info btlb_info;
 #endif
 
 DEFINE_STATIC_KEY_TRUE(parisc_has_cache);