[PATCH] x86/smp: fix non-SMP broken build due to redefinition of apic_id_is_primary_thread

From: Vlastimil Babka
Date: Tue Aug 14 2018 - 17:39:10 EST


The function has an inline "return false;" definition with CONFIG_SMP=n but the
"real" definition is also visible leading to "redefinition of
âapic_id_is_primary_threadâ" compiler error. Guard it with #ifdef CONFIG_SMP

Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
Fixes: 6a4d2657e048 ("x86/smp: Provide topology_is_primary_thread()")
Cc: stable@xxxxxxxxxxxxxxx
---
arch/x86/kernel/apic/apic.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 87ff6235bbfe..84132eddb5a8 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -2193,6 +2193,7 @@ static int cpuid_to_apicid[] = {
[0 ... NR_CPUS - 1] = -1,
};

+#ifdef CONFIG_SMP
/**
* apic_id_is_primary_thread - Check whether APIC ID belongs to a primary thread
* @id: APIC ID to check
@@ -2207,6 +2208,7 @@ bool apic_id_is_primary_thread(unsigned int apicid)
mask = (1U << (fls(smp_num_siblings) - 1)) - 1;
return !(apicid & mask);
}
+#endif

/*
* Should use this API to allocate logical CPU IDs to keep nr_logical_cpuids
--
2.18.0