Commit 6c4f5aba authored by Suravee Suthikulpanit's avatar Suravee Suthikulpanit Committed by Thomas Gleixner

x86/CPU: Modify detect_extended_topology() to return result

Current implementation does not communicate whether it can successfully
detect CPUID function 0xB information. Therefore, modify the function to
return success or error codes. This will be used by subsequent patches.
Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1524865681-112110-2-git-send-email-suravee.suthikulpanit@amd.com
parent 68091ee7
...@@ -193,7 +193,7 @@ extern u32 get_scattered_cpuid_leaf(unsigned int level, ...@@ -193,7 +193,7 @@ extern u32 get_scattered_cpuid_leaf(unsigned int level,
extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c); extern unsigned int init_intel_cacheinfo(struct cpuinfo_x86 *c);
extern void init_amd_cacheinfo(struct cpuinfo_x86 *c); extern void init_amd_cacheinfo(struct cpuinfo_x86 *c);
extern void detect_extended_topology(struct cpuinfo_x86 *c); extern int detect_extended_topology(struct cpuinfo_x86 *c);
extern void detect_ht(struct cpuinfo_x86 *c); extern void detect_ht(struct cpuinfo_x86 *c);
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
* exists, use it for populating initial_apicid and cpu topology * exists, use it for populating initial_apicid and cpu topology
* detection. * detection.
*/ */
void detect_extended_topology(struct cpuinfo_x86 *c) int detect_extended_topology(struct cpuinfo_x86 *c)
{ {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
unsigned int eax, ebx, ecx, edx, sub_index; unsigned int eax, ebx, ecx, edx, sub_index;
...@@ -36,7 +36,7 @@ void detect_extended_topology(struct cpuinfo_x86 *c) ...@@ -36,7 +36,7 @@ void detect_extended_topology(struct cpuinfo_x86 *c)
static bool printed; static bool printed;
if (c->cpuid_level < 0xb) if (c->cpuid_level < 0xb)
return; return -1;
cpuid_count(0xb, SMT_LEVEL, &eax, &ebx, &ecx, &edx); cpuid_count(0xb, SMT_LEVEL, &eax, &ebx, &ecx, &edx);
...@@ -44,7 +44,7 @@ void detect_extended_topology(struct cpuinfo_x86 *c) ...@@ -44,7 +44,7 @@ void detect_extended_topology(struct cpuinfo_x86 *c)
* check if the cpuid leaf 0xb is actually implemented. * check if the cpuid leaf 0xb is actually implemented.
*/ */
if (ebx == 0 || (LEAFB_SUBTYPE(ecx) != SMT_TYPE)) if (ebx == 0 || (LEAFB_SUBTYPE(ecx) != SMT_TYPE))
return; return -1;
set_cpu_cap(c, X86_FEATURE_XTOPOLOGY); set_cpu_cap(c, X86_FEATURE_XTOPOLOGY);
...@@ -95,6 +95,6 @@ void detect_extended_topology(struct cpuinfo_x86 *c) ...@@ -95,6 +95,6 @@ void detect_extended_topology(struct cpuinfo_x86 *c)
c->cpu_core_id); c->cpu_core_id);
printed = 1; printed = 1;
} }
return;
#endif #endif
return 0;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment