Skip to content

Commit 825600c

Browse files
Artem Fetishevtorvalds
authored andcommitted
x86: fix boot on uniprocessor systems
On x86 uniprocessor systems topology_physical_package_id() returns -1 which causes rapl_cpu_prepare() to leave rapl_pmu variable uninitialized which leads to GPF in rapl_pmu_init(). See arch/x86/kernel/cpu/perf_event_intel_rapl.c. It turns out that physical_package_id and core_id can actually be retreived for uniprocessor systems too. Enabling them also fixes rapl_pmu code. Signed-off-by: Artem Fetishev <artem_fetishev@epam.com> Cc: Stephane Eranian <eranian@google.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent d906074 commit 825600c

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

arch/x86/include/asm/topology.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,10 @@ static inline void setup_node_to_cpumask_map(void) { }
119119

120120
extern const struct cpumask *cpu_coregroup_mask(int cpu);
121121

122-
#ifdef ENABLE_TOPO_DEFINES
123122
#define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id)
124123
#define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id)
124+
125+
#ifdef ENABLE_TOPO_DEFINES
125126
#define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu))
126127
#define topology_thread_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu))
127128
#endif

0 commit comments

Comments
 (0)