diff options
| author | Dou Liyang <douly.fnst@cn.fujitsu.com> | 2018-03-01 13:59:30 +0800 |
|---|---|---|
| committer | Ben Hutchings <ben@decadent.org.uk> | 2019-11-22 15:57:22 +0000 |
| commit | 524608cbf01e9b08aa72229a80a7391b90262022 (patch) | |
| tree | a7b710cc966c5e780c04351ab9305393c09f34e8 | |
| parent | bbae843aa0432e45131feb9767bba375081979f0 (diff) | |
| download | linux-524608cbf01e9b08aa72229a80a7391b90262022.tar.gz linux-524608cbf01e9b08aa72229a80a7391b90262022.tar.bz2 linux-524608cbf01e9b08aa72229a80a7391b90262022.zip | |
x86/apic: Drop logical_smp_processor_id() inline
commit 8f1561680f42a5491b371b513f1ab8197f31fd62 upstream.
The logical_smp_processor_id() inline which is only called in
setup_local_APIC() on x86_32 systems has no real value.
Drop it and directly use GET_APIC_LOGICAL_ID() at the call site and use a
more suitable variable name for readability
Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: andy.shevchenko@gmail.com
Cc: bhe@redhat.com
Cc: ebiederm@xmission.com
Link: https://lkml.kernel.org/r/20180301055930.2396-4-douly.fnst@cn.fujitsu.com
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
| -rw-r--r-- | arch/x86/include/asm/smp.h | 10 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/apic.c | 11 |
2 files changed, 7 insertions, 14 deletions
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index eb7fac9ef8a4..8c43d5581f0c 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h @@ -203,16 +203,6 @@ extern int safe_smp_processor_id(void); #endif #ifdef CONFIG_X86_LOCAL_APIC - -#ifndef CONFIG_X86_64 -static inline int logical_smp_processor_id(void) -{ - /* we don't want to mark this access volatile - bad code generation */ - return GET_APIC_LOGICAL_ID(apic_read(APIC_LDR)); -} - -#endif - extern int hard_smp_processor_id(void); #else /* CONFIG_X86_LOCAL_APIC */ diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index fb2cce787f79..a1d71e04104f 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -1305,6 +1305,9 @@ void setup_local_APIC(void) int i, j, acked = 0; unsigned long long tsc = 0, ntsc; long long max_loops = cpu_khz ? cpu_khz : 1000000; +#ifdef CONFIG_X86_32 + int logical_apicid, ldr_apicid; +#endif if (cpu_has_tsc) rdtscll(tsc); @@ -1344,11 +1347,11 @@ void setup_local_APIC(void) * initialized during get_smp_config(), make sure it matches the * actual value. */ - i = early_per_cpu(x86_cpu_to_logical_apicid, cpu); - WARN_ON(i != BAD_APICID && i != logical_smp_processor_id()); + logical_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu); + ldr_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR)); + WARN_ON(logical_apicid != BAD_APICID && logical_apicid != ldr_apicid); /* always use the value from LDR */ - early_per_cpu(x86_cpu_to_logical_apicid, cpu) = - logical_smp_processor_id(); + early_per_cpu(x86_cpu_to_logical_apicid, cpu) = ldr_apicid; /* * Some NUMA implementations (NUMAQ) don't initialize apicid to |
