mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	[SPARC64]: Fix {mc,smt}_capable().
It's not just sun4v hypervisor platforms that should return true for this, sun4u with UltraSPARC-IV should return true too. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									5cd342df96
								
							
						
					
					
						commit
						a2f9f6bbb3
					
				
					 5 changed files with 12 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -624,6 +624,10 @@ static void __init mdesc_fill_in_cpu_data(void)
 | 
			
		|||
		c->proc_id = -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SMP
 | 
			
		||||
	sparc64_multi_core = 1;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	set_core_ids();
 | 
			
		||||
	set_proc_ids();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1782,6 +1782,9 @@ static void __init of_fill_in_cpu_data(void)
 | 
			
		|||
 | 
			
		||||
			cpu_data(cpuid).core_id = portid + 1;
 | 
			
		||||
			cpu_data(cpuid).proc_id = portid;
 | 
			
		||||
#ifdef CONFIG_SMP
 | 
			
		||||
			sparc64_multi_core = 1;
 | 
			
		||||
#endif
 | 
			
		||||
		} else {
 | 
			
		||||
			cpu_data(cpuid).dcache_size =
 | 
			
		||||
				of_getintprop_default(dp, "dcache-size", 16 * 1024);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,6 +44,8 @@
 | 
			
		|||
 | 
			
		||||
extern void calibrate_delay(void);
 | 
			
		||||
 | 
			
		||||
int sparc64_multi_core __read_mostly;
 | 
			
		||||
 | 
			
		||||
/* Please don't make this stuff initdata!!!  --DaveM */
 | 
			
		||||
unsigned char boot_cpu_id;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@ extern cpumask_t phys_cpu_present_map;
 | 
			
		|||
 | 
			
		||||
extern cpumask_t cpu_sibling_map[NR_CPUS];
 | 
			
		||||
extern cpumask_t cpu_core_map[NR_CPUS];
 | 
			
		||||
extern int sparc64_multi_core;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *	General functions that each host system must provide.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,14 +2,12 @@
 | 
			
		|||
#define _ASM_SPARC64_TOPOLOGY_H
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SMP
 | 
			
		||||
#include <asm/spitfire.h>
 | 
			
		||||
 | 
			
		||||
#define topology_physical_package_id(cpu)	(cpu_data(cpu).proc_id)
 | 
			
		||||
#define topology_core_id(cpu)			(cpu_data(cpu).core_id)
 | 
			
		||||
#define topology_core_siblings(cpu)		(cpu_core_map[cpu])
 | 
			
		||||
#define topology_thread_siblings(cpu)		(cpu_sibling_map[cpu])
 | 
			
		||||
#define mc_capable()				(tlb_type == hypervisor)
 | 
			
		||||
#define smt_capable()				(tlb_type == hypervisor)
 | 
			
		||||
#define mc_capable()				(sparc64_multi_core)
 | 
			
		||||
#define smt_capable()				(sparc64_multi_core)
 | 
			
		||||
#endif /* CONFIG_SMP */
 | 
			
		||||
 | 
			
		||||
#include <asm-generic/topology.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue