android_kernel_samsung_sm8650/arch/loongarch/kernel
Huacai Chen 9e584ea101 LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init()
commit 5056c596c3d1848021a4eaa76ee42f4c05c50346 upstream.

Machines which have more than 8 nodes fail to boot SMP after commit
a2ccf46333d7b2cf96 ("LoongArch/smp: Call rcutree_report_cpu_starting()
earlier"). Because such machines use tlb-based per-cpu base address
rather than dmw-based per-cpu base address, resulting per-cpu variables
can only be accessed after tlb_init(). But rcutree_report_cpu_starting()
is now called before tlb_init() and accesses per-cpu variables indeed.

Since the original patch want to avoid the lockdep warning caused by
page allocation in tlb_init(), we can move rcutree_report_cpu_starting()
to tlb_init() where after tlb exception configuration but before page
allocation.

Fixes: a2ccf46333d7b2cf96 ("LoongArch/smp: Call rcutree_report_cpu_starting() earlier")
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-05 20:13:02 +00:00
..
.gitignore LoongArch: Add build infrastructure 2022-06-03 20:09:27 +08:00
access-helper.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
acpi.c LoongArch: Combine acpi_boot_table_init() and acpi_boot_init() 2022-11-21 19:02:57 +08:00
asm-offsets.c LoongArch changes for v5.20 2022-08-12 09:44:23 -07:00
cacheinfo.c LoongArch: Refactor cache probe and flush methods 2022-10-12 16:36:14 +08:00
cpu-probe.c LoongArch: Mark 3 symbol exports as non-GPL 2023-04-26 14:28:38 +02:00
crash_dump.c LoongArch: Add kdump support 2022-10-12 16:36:19 +08:00
dma.c LoongArch: Use acpi_arch_dma_setup() and remove ARCH_HAS_PHYS_TO_DMA 2022-09-24 18:39:21 +02:00
efi-header.S efi/loongarch: Add efistub booting support 2022-09-06 11:19:34 +02:00
efi.c efi/loongarch: libstub: remove dependency on flattened DT 2022-09-27 13:22:49 +02:00
elf.c LoongArch: Fix and simplify fcsr initialization on execve() 2024-01-25 15:27:43 -08:00
entry.S LoongArch: Re-tab the assembly files 2022-07-29 18:22:32 +08:00
env.c efi/loongarch: libstub: remove dependency on flattened DT 2022-09-27 13:22:49 +02:00
fpu.S LoongArch: Re-tab the assembly files 2022-07-29 18:22:32 +08:00
genex.S LoongArch: Re-tab the assembly files 2022-07-29 18:22:32 +08:00
head.S LoongArch: Remove unused kernel stack padding 2022-10-29 16:29:31 +08:00
idle.c LoongArch: Add process management 2022-06-03 20:09:28 +08:00
image-vars.h efi/libstub: use EFI provided memcpy/memset routines 2022-09-17 15:13:21 +02:00
inst.c LoongArch: Add ELF and module support 2022-06-03 20:09:28 +08:00
io.c LoongArch: Add misc common routines 2022-06-03 20:09:28 +08:00
irq.c LoongArch: SMP: Change prefix from loongson3 to loongson 2022-11-21 19:02:57 +08:00
machine_kexec.c LoongArch: Add kdump support 2022-10-12 16:36:19 +08:00
Makefile LoongArch changes for v6.1 2022-10-12 10:35:20 -07:00
mem.c LoongArch: Set all reserved memblocks on Node#0 at initialization 2023-10-06 14:56:58 +02:00
module-sections.c LoongArch: Support R_LARCH_GOT_PC_{LO12,HI20} in modules 2022-10-12 16:36:14 +08:00
module.c LoongArch: Define relocation types for ABI v2.10 2023-10-06 14:57:01 +02:00
numa.c LoongArch: numa: Fix high_memory calculation 2023-10-06 14:57:01 +02:00
perf_event.c LoongArch: Fix perf event id calculation 2023-06-21 16:00:54 +02:00
perf_regs.c LoongArch: Add perf events support 2022-10-12 16:36:14 +08:00
proc.c LoongArch: Fix probing of the CRC32 feature 2023-04-26 14:28:38 +02:00
process.c LoongArch: Fix and simplify fcsr initialization on execve() 2024-01-25 15:27:43 -08:00
ptrace.c LoongArch: Fix missing fcsr in ptrace's fpr_set 2022-07-29 18:22:33 +08:00
relocate_kernel.S LoongArch: Add kdump support 2022-10-12 16:36:19 +08:00
reset.c LoongArch: Cleanup reset routines with new API 2022-08-25 19:34:59 +08:00
setup.c Revert "loongarch/cpu: Switch to arch_cpu_finalize_init()" 2023-08-16 18:27:20 +02:00
signal.c LoongArch: Adjust arch_do_signal_or_restart() to adapt generic entry 2022-09-03 18:01:27 +08:00
smp.c LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init() 2024-02-05 20:13:02 +00:00
stacktrace.c LoongArch: Add USER_STACKTRACE support 2022-08-12 13:10:11 +08:00
switch.S LoongArch: Remove unused kernel stack padding 2022-10-29 16:29:31 +08:00
syscall.c LoongArch: Add system call support 2022-06-03 20:09:28 +08:00
sysrq.c LoongArch: Add SysRq-x (TLB Dump) support 2022-10-12 16:36:14 +08:00
time.c LoongArch: Implement constant timer shutdown interface 2023-12-20 17:00:23 +01:00
topology.c LoongArch: Do not create sysfs control file for io master CPUs 2022-10-12 16:36:08 +08:00
traps.c LoongArch: Add kdump support 2022-10-12 16:36:19 +08:00
unwind_guess.c LoongArch: Get frame info in unwind_start() when regs is not available 2023-02-06 08:06:32 +01:00
unwind_prologue.c LoongArch: Get frame info in unwind_start() when regs is not available 2023-02-06 08:06:32 +01:00
vdso.c treewide: use prandom_u32_max() when possible, part 1 2022-10-11 17:42:55 -06:00
vmlinux.lds.S LoongArch: Adjust symbol addressing for AS_HAS_EXPLICIT_RELOCS 2022-10-12 16:36:08 +08:00