riscv: fix KUnit test_kprobes crash when building with Clang

Clang misinterprets the placement of test_kprobes_addresses and
test_kprobes_functions arrays when they are not explicitly assigned
to a data section. This can lead to kmalloc_array() allocation
errors and KUnit failures.

When testing the Clang-compiled code in QEMU, this warning was emitted:

WARNING: CPU: 1 PID: 3000 at mm/page_alloc.c:5159 __alloc_frozen_pages_noprof+0xe6/0x2fc mm/page_alloc.c:5159

Further investigation revealed that the test_kprobes_addresses array
appeared to have over 100,000 elements, including invalid addresses;
whereas, according to test-kprobes-asm.S, test_kprobes_addresses
should only have 25 elements.

When compiling the kernel with GCC, the kernel boots correctly.

This patch fixes the issue by adding .section .rodata to explicitly
place arrays in the read-only data segment.

For detailed debug and analysis, see:
https://github.com/j1akai/temp/blob/main/20251113/readme.md

v1 -> v2:
- Drop changes to .align, and .globl.

Signed-off-by: Jiakai Xu <xujiakai2025@iscas.ac.cn>
Signed-off-by: Jiakai Xu <jiakaiPeanut@gmail.com>
Link: https://patch.msgid.link/738dd4e2.ff73.19a7cd7b4d5.Coremail.xujiakai2025@iscas.ac.cn
Link: https://github.com/llvm/llvm-project/issues/168308
Link: https://patch.msgid.link/20251226032317.1523764-1-jiakaiPeanut@gmail.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>

authored by Jiakai Xu and committed by Paul Walmsley 641ecc89 25fd7ee7

Changed files
+2
arch
riscv
kernel
tests
+2
arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S
··· 181 181 182 182 #endif /* CONFIG_RISCV_ISA_C */ 183 183 184 + .section .rodata 184 185 SYM_DATA_START(test_kprobes_addresses) 185 186 RISCV_PTR test_kprobes_add_addr1 186 187 RISCV_PTR test_kprobes_add_addr2 ··· 213 212 RISCV_PTR 0 214 213 SYM_DATA_END(test_kprobes_addresses) 215 214 215 + .section .rodata 216 216 SYM_DATA_START(test_kprobes_functions) 217 217 RISCV_PTR test_kprobes_add 218 218 RISCV_PTR test_kprobes_jal