mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-18 22:14:16 +00:00 
			
		
		
		
	riscv: Move call to init_cpu_topology() to later initialization stage
If "capacity-dmips-mhz" is present in a CPU DT node,
topology_parse_cpu_capacity() will fail to allocate memory.  arm64, with
which this code path is shared, does not call
topology_parse_cpu_capacity() until later in boot where memory
allocation is available.  While "capacity-dmips-mhz" is not yet a valid
property on RISC-V, invalid properties should be ignored rather than
cause issues.  Move init_cpu_topology(), which calls
topology_parse_cpu_capacity(), to a later initialization stage, to match
arm64.
As a side effect of this change, RISC-V is "protected" from changes to
core topology code that would work on arm64 where memory allocation is
safe but on RISC-V isn't.
Fixes: 03f11f03db ("RISC-V: Parse cpu topology during boot.")
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
Link: https://lore.kernel.org/r/20230105033705.3946130-1-leyfoon.tan@starfivetech.com
[Palmer: use Conor's commit text]
Link: https://lore.kernel.org/linux-riscv/20230104183033.755668-1-pierre.gondois@arm.com/T/#me592d4c8b9508642954839f0077288a353b0b9b2
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
			
			
This commit is contained in:
		
							parent
							
								
									ca0254998b
								
							
						
					
					
						commit
						c1d6105869
					
				
					 1 changed files with 2 additions and 1 deletions
				
			
		|  | @ -39,7 +39,6 @@ static DECLARE_COMPLETION(cpu_running); | |||
| 
 | ||||
| void __init smp_prepare_boot_cpu(void) | ||||
| { | ||||
| 	init_cpu_topology(); | ||||
| } | ||||
| 
 | ||||
| void __init smp_prepare_cpus(unsigned int max_cpus) | ||||
|  | @ -48,6 +47,8 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
| 	int ret; | ||||
| 	unsigned int curr_cpuid; | ||||
| 
 | ||||
| 	init_cpu_topology(); | ||||
| 
 | ||||
| 	curr_cpuid = smp_processor_id(); | ||||
| 	store_cpu_topology(curr_cpuid); | ||||
| 	numa_store_cpu_info(curr_cpuid); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Ley Foon Tan
						Ley Foon Tan