Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a2f9f6bb authored by David S. Miller's avatar David S. Miller Committed by David S. Miller
Browse files

[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: default avatarDavid S. Miller <davem@davemloft.net>
parent 5cd342df
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -624,6 +624,10 @@ static void __init mdesc_fill_in_cpu_data(void)
		c->proc_id = -1;
		c->proc_id = -1;
	}
	}


#ifdef CONFIG_SMP
	sparc64_multi_core = 1;
#endif

	set_core_ids();
	set_core_ids();
	set_proc_ids();
	set_proc_ids();


+3 −0
Original line number Original line Diff line number Diff line
@@ -1782,6 +1782,9 @@ static void __init of_fill_in_cpu_data(void)


			cpu_data(cpuid).core_id = portid + 1;
			cpu_data(cpuid).core_id = portid + 1;
			cpu_data(cpuid).proc_id = portid;
			cpu_data(cpuid).proc_id = portid;
#ifdef CONFIG_SMP
			sparc64_multi_core = 1;
#endif
		} else {
		} else {
			cpu_data(cpuid).dcache_size =
			cpu_data(cpuid).dcache_size =
				of_getintprop_default(dp, "dcache-size", 16 * 1024);
				of_getintprop_default(dp, "dcache-size", 16 * 1024);
+2 −0
Original line number Original line Diff line number Diff line
@@ -44,6 +44,8 @@


extern void calibrate_delay(void);
extern void calibrate_delay(void);


int sparc64_multi_core __read_mostly;

/* Please don't make this stuff initdata!!!  --DaveM */
/* Please don't make this stuff initdata!!!  --DaveM */
unsigned char boot_cpu_id;
unsigned char boot_cpu_id;


+1 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,7 @@ extern cpumask_t phys_cpu_present_map;


extern cpumask_t cpu_sibling_map[NR_CPUS];
extern cpumask_t cpu_sibling_map[NR_CPUS];
extern cpumask_t cpu_core_map[NR_CPUS];
extern cpumask_t cpu_core_map[NR_CPUS];
extern int sparc64_multi_core;


/*
/*
 *	General functions that each host system must provide.
 *	General functions that each host system must provide.
+2 −4
Original line number Original line Diff line number Diff line
@@ -2,14 +2,12 @@
#define _ASM_SPARC64_TOPOLOGY_H
#define _ASM_SPARC64_TOPOLOGY_H


#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
#include <asm/spitfire.h>

#define topology_physical_package_id(cpu)	(cpu_data(cpu).proc_id)
#define topology_physical_package_id(cpu)	(cpu_data(cpu).proc_id)
#define topology_core_id(cpu)			(cpu_data(cpu).core_id)
#define topology_core_id(cpu)			(cpu_data(cpu).core_id)
#define topology_core_siblings(cpu)		(cpu_core_map[cpu])
#define topology_core_siblings(cpu)		(cpu_core_map[cpu])
#define topology_thread_siblings(cpu)		(cpu_sibling_map[cpu])
#define topology_thread_siblings(cpu)		(cpu_sibling_map[cpu])
#define mc_capable()				(tlb_type == hypervisor)
#define mc_capable()				(sparc64_multi_core)
#define smt_capable()				(tlb_type == hypervisor)
#define smt_capable()				(sparc64_multi_core)
#endif /* CONFIG_SMP */
#endif /* CONFIG_SMP */


#include <asm-generic/topology.h>
#include <asm-generic/topology.h>