linux/arch/riscv/kernel
Palmer Dabbelt 2305989396
RISC-V: Provide a more helpful error message on invalid ISA strings
Right now we provide a somewhat unhelpful error message on systems with
invalid error messages, something along the lines of

	CPU with hartid=0 is not available
	------------[ cut here ]------------
	kernel BUG at arch/riscv/kernel/smpboot.c:174!
	Kernel BUG [#1]
	Modules linked in:
	CPU: 0 PID: 0 Comm: swapper Not tainted 6.4.0-rc1-00096-ge0097d2c62d5-dirty #1
	Hardware name: Microchip PolarFire-SoC Icicle Kit (DT)
	epc : of_parse_and_init_cpus+0x16c/0x16e
	 ra : of_parse_and_init_cpus+0x9a/0x16e
	epc : ffffffff80c04e0a ra : ffffffff80c04d38 sp : ffffffff81603e20
	 gp : ffffffff8182d658 tp : ffffffff81613f80 t0 : 000000000000006e
	 t1 : 0000000000000064 t2 : 0000000000000000 s0 : ffffffff81603e80
	 s1 : 0000000000000000 a0 : 0000000000000000 a1 : 0000000000000000
	 a2 : 0000000000000000 a3 : 0000000000000000 a4 : 0000000000000000
	 a5 : 0000000000001fff a6 : 0000000000001fff a7 : ffffffff816148b0
	 s2 : 0000000000000001 s3 : ffffffff81492a4c s4 : ffffffff81a4b090
	 s5 : ffffffff81506030 s6 : 0000000000000040 s7 : 0000000000000000
	 s8 : 00000000bfb6f046 s9 : 0000000000000001 s10: 0000000000000000
	 s11: 00000000bf389700 t3 : 0000000000000000 t4 : 0000000000000000
	 t5 : ffffffff824dd188 t6 : ffffffff824dd187
	status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003
	[<ffffffff80c04e0a>] of_parse_and_init_cpus+0x16c/0x16e
	[<ffffffff80c04c96>] setup_smp+0x1e/0x26
	[<ffffffff80c03ffe>] setup_arch+0x6e/0xb2
	[<ffffffff80c00384>] start_kernel+0x72/0x400
	Code: 80e7 4a00 a603 0009 b795 1097 ffe5 80e7 92c0 9002 (9002) 715d
	---[ end trace 0000000000000000 ]---
	Kernel panic - not syncing: Fatal exception in interrupt

Add a warning for the cases where the ISA string isn't valid.  It's still
above the BUG_ON cut, but hopefully it's at least a bit easier for users.

Reviewed-by: Evan Green <evan@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20230713-endless-spearhead-62a5a4b149bd@wendy
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
2023-07-25 16:26:15 -07:00
..
compat_vdso RISC-V Patches for the 6.4 Merge Window, Part 1 2023-04-28 16:55:39 -07:00
pi riscv: Fix orphan section warnings caused by kernel/pi 2023-05-09 18:20:23 -07:00
probes RISC-V Patches for the 6.5 Merge Window, Part 1 2023-06-30 09:37:26 -07:00
vdso riscv: replace deprecated scall with ecall 2023-06-20 09:02:09 -07:00
.gitignore
acpi.c RISC-V: ACPI : Fix for usage of pointers in different address space 2023-06-19 09:27:58 -07:00
alternative.c RISC-V: hwprobe: Remove __init on probe_vendor_features() 2023-04-25 21:58:42 -07:00
asm-offsets.c RISC-V: Add arch functions to support hibernation/suspend-to-disk 2023-04-29 11:25:13 -07:00
cacheinfo.c RISC-V Patches for the 6.4 Merge Window, Part 1 2023-04-28 16:55:39 -07:00
compat_signal.c riscv: compat: signal: Add rt_frame implementation 2022-05-17 16:37:21 -07:00
compat_syscall_table.c riscv: compat: syscall: Add compat_sys_call_table implementation 2022-04-26 13:36:25 -07:00
cpu-hotplug.c riscv: Switch to hotplug core state synchronization 2023-05-15 13:44:59 +02:00
cpu.c RISC-V: Provide a more helpful error message on invalid ISA strings 2023-07-25 16:26:15 -07:00
cpu_ops.c RISC-V: Align SBI probe implementation with spec 2023-04-29 13:04:50 -07:00
cpu_ops_sbi.c riscv: cpu_ops_sbi: Add 64bit hartid support on RV64 2022-07-19 16:38:58 -07:00
cpu_ops_spinwait.c RISC-V: cpu_ops_spinwait.c should include head.h 2022-08-11 13:24:16 -07:00
cpufeature.c Merge patch series "ISA string parser cleanups" 2023-06-23 10:06:20 -07:00
crash_core.c RISC-V: Add arch_crash_save_vmcoreinfo support 2022-12-02 16:48:22 -08:00
crash_dump.c vmcore: convert copy_oldmem_page() to take an iov_iter 2022-04-29 14:37:59 -07:00
crash_save_regs.S RISC-V: Fixup get incorrect user mode PC for kernel mode regs 2022-08-11 08:54:40 -07:00
efi-header.S riscv: Prepare EFI header for relocatable kernels 2023-04-19 07:46:28 -07:00
efi.c efi: Discover BTI support in runtime services regions 2023-02-04 09:19:02 +01:00
elf_kexec.c RISC-V: kexec: Fix memory leak of elf header buffer 2022-12-05 10:59:58 -08:00
entry.S riscv: replace deprecated scall with ecall 2023-06-20 09:02:09 -07:00
fpu.S
ftrace.c RISC-V: Don't check text_mutex during stop_machine 2023-03-09 14:58:51 -08:00
head.h riscv: entry: Convert to generic entry 2023-03-23 08:47:00 -07:00
head.S riscv: prevent stack corruption by reserving task_pt_regs(p) early 2023-06-08 07:16:49 -07:00
hibernate-asm.S riscv: hibernation: Remove duplicate call of suspend_restore_csrs 2023-06-19 09:27:57 -07:00
hibernate.c riscv: hibernate: remove WARN_ON in save_processor_state 2023-06-23 10:06:22 -07:00
image-vars.h riscv: Fix EFI stub usage of KASAN instrumented strcmp function 2023-04-19 07:24:52 -07:00
irq.c riscv: stack: Support HAVE_SOFTIRQ_ON_OWN_STACK 2023-06-22 10:38:36 -07:00
jump_label.c jump_label: make initial NOP patching the special case 2022-06-24 09:48:55 +02:00
kexec_relocate.S
kgdb.c RISC-V: rename parse_asm.h to insn.h 2022-12-29 06:59:47 -08:00
machine_kexec.c riscv: kexec: Fixup crash_smp_send_stop without multi cores 2022-11-29 21:50:59 -08:00
machine_kexec_file.c RISC-V: Add kexec_file support 2022-05-19 12:14:18 -07:00
Makefile RISC-V Patches for the 6.5 Merge Window, Part 1 2023-06-30 09:37:26 -07:00
mcount-dyn.S riscv: entry: Consolidate general regs saving/restoring 2023-03-23 08:47:03 -07:00
mcount.S riscv: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL 2023-06-22 10:39:56 -04:00
module-sections.c
module.c riscv: module: Add ADD16 and SUB16 rela types 2023-01-31 23:29:40 -08:00
patch.c RISC-V: Don't check text_mutex during stop_machine 2023-03-09 14:58:51 -08:00
perf_callchain.c
perf_regs.c
process.c riscv: Add prctl controls for userspace vector management 2023-06-08 07:16:53 -07:00
ptrace.c riscv: Add ptrace vector support 2023-06-08 07:16:45 -07:00
reset.c riscv: Use do_kernel_power_off() 2022-05-19 19:30:30 +02:00
riscv_ksyms.c RISC-V: add infrastructure to allow different str* implementations 2023-01-31 11:43:23 -08:00
sbi-ipi.c RISC-V: Allow marking IPIs as suitable for remote FENCEs 2023-04-08 11:26:24 +01:00
sbi.c RISC-V: Align SBI probe implementation with spec 2023-04-29 13:04:50 -07:00
setup.c Merge patch series "riscv: Add vector ISA support" 2023-06-08 07:17:09 -07:00
signal.c riscv: signal: validate altstack to reflect Vector 2023-06-08 07:16:48 -07:00
smp.c RISC-V: drop error print from riscv_hartid_to_cpuid() 2023-07-04 09:04:12 -07:00
smpboot.c risc-v: Fix order of IPI enablement vs RCU startup 2023-07-05 07:24:38 -07:00
soc.c
stacktrace.c riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode 2023-03-09 14:50:35 -08:00
suspend.c RISC-V: Change suspend_save_csrs and suspend_restore_csrs to public function 2023-04-29 11:25:10 -07:00
suspend_entry.S RISC-V: Factor out common code of __cpu_resume_enter() 2023-04-29 11:25:11 -07:00
sys_riscv.c Merge patch series "RISC-V: Export Zba, Zbb to usermode via hwprobe" 2023-06-19 14:34:40 -07:00
syscall_table.c
time.c RISC-V: time.c: Add ACPI support for time_init() 2023-06-01 08:45:13 -07:00
traps.c riscv: Discard vector state on syscalls 2023-07-04 08:59:24 -07:00
traps_misaligned.c riscv: traps_misaligned: do not duplicate stringify 2022-08-11 08:56:53 -07:00
vdso.c riscv: vdso: include vdso/vsyscall.h for vdso_data 2023-07-04 07:54:41 -07:00
vector.c riscv: vector: clear V-reg in the first-use trap 2023-07-01 07:38:21 -07:00
vmlinux-xip.lds.S riscv: vmlinux-xip.lds.S: remove .alternative section 2023-06-25 16:24:03 -07:00
vmlinux.lds.S riscv: enable HAVE_LD_DEAD_CODE_DATA_ELIMINATION 2023-06-25 16:24:05 -07:00