x86: make read_apic_id return final apicid
also remove GET_APIC_ID when read_apic_id is used. need to apply after [PATCH] x86: mach_apicdef.h need to include before smp.h Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Cc: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -761,7 +761,7 @@ static void __init acpi_register_lapic_address(unsigned long address)
|
|||||||
|
|
||||||
set_fixmap_nocache(FIX_APIC_BASE, address);
|
set_fixmap_nocache(FIX_APIC_BASE, address);
|
||||||
if (boot_cpu_physical_apicid == -1U) {
|
if (boot_cpu_physical_apicid == -1U) {
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
apic_version[boot_cpu_physical_apicid] =
|
apic_version[boot_cpu_physical_apicid] =
|
||||||
GET_APIC_VERSION(apic_read(APIC_LVR));
|
GET_APIC_VERSION(apic_read(APIC_LVR));
|
||||||
|
@@ -1230,7 +1230,7 @@ void __init init_apic_mappings(void)
|
|||||||
* default configuration (or the MP table is broken).
|
* default configuration (or the MP table is broken).
|
||||||
*/
|
*/
|
||||||
if (boot_cpu_physical_apicid == -1U)
|
if (boot_cpu_physical_apicid == -1U)
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1270,7 +1270,7 @@ int __init APIC_init_uniprocessor(void)
|
|||||||
* might be zero if read from MP tables. Get it from LAPIC.
|
* might be zero if read from MP tables. Get it from LAPIC.
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_CRASH_DUMP
|
#ifdef CONFIG_CRASH_DUMP
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
#endif
|
#endif
|
||||||
physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
|
physid_set_mask_of_physid(boot_cpu_physical_apicid, &phys_cpu_present_map);
|
||||||
|
|
||||||
|
@@ -1060,7 +1060,7 @@ void __init early_init_lapic_mapping(void)
|
|||||||
* Fetch the APIC ID of the BSP in case we have a
|
* Fetch the APIC ID of the BSP in case we have a
|
||||||
* default configuration (or the MP table is broken).
|
* default configuration (or the MP table is broken).
|
||||||
*/
|
*/
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1069,7 +1069,7 @@ void __init early_init_lapic_mapping(void)
|
|||||||
void __init init_apic_mappings(void)
|
void __init init_apic_mappings(void)
|
||||||
{
|
{
|
||||||
if (x2apic) {
|
if (x2apic) {
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1092,7 +1092,7 @@ void __init init_apic_mappings(void)
|
|||||||
* Fetch the APIC ID of the BSP in case we have a
|
* Fetch the APIC ID of the BSP in case we have a
|
||||||
* default configuration (or the MP table is broken).
|
* default configuration (or the MP table is broken).
|
||||||
*/
|
*/
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -101,7 +101,7 @@ static unsigned int read_xapic_id(void)
|
|||||||
{
|
{
|
||||||
unsigned int id;
|
unsigned int id;
|
||||||
|
|
||||||
id = GET_XAPIC_ID(apic_read(APIC_ID));
|
id = GET_APIC_ID(apic_read(APIC_ID));
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1501,7 +1501,7 @@ void /*__init*/ print_local_APIC(void *dummy)
|
|||||||
smp_processor_id(), hard_smp_processor_id());
|
smp_processor_id(), hard_smp_processor_id());
|
||||||
v = apic_read(APIC_ID);
|
v = apic_read(APIC_ID);
|
||||||
printk(KERN_INFO "... APIC ID: %08x (%01x)\n", v,
|
printk(KERN_INFO "... APIC ID: %08x (%01x)\n", v,
|
||||||
GET_APIC_ID(read_apic_id()));
|
GET_APIC_ID(v));
|
||||||
v = apic_read(APIC_LVR);
|
v = apic_read(APIC_LVR);
|
||||||
printk(KERN_INFO "... APIC VERSION: %08x\n", v);
|
printk(KERN_INFO "... APIC VERSION: %08x\n", v);
|
||||||
ver = GET_APIC_VERSION(v);
|
ver = GET_APIC_VERSION(v);
|
||||||
@@ -1709,8 +1709,7 @@ void disable_IO_APIC(void)
|
|||||||
entry.dest_mode = 0; /* Physical */
|
entry.dest_mode = 0; /* Physical */
|
||||||
entry.delivery_mode = dest_ExtINT; /* ExtInt */
|
entry.delivery_mode = dest_ExtINT; /* ExtInt */
|
||||||
entry.vector = 0;
|
entry.vector = 0;
|
||||||
entry.dest.physical.physical_dest =
|
entry.dest.physical.physical_dest = read_apic_id();
|
||||||
GET_APIC_ID(read_apic_id());
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add it to the IO-APIC irq-routing table:
|
* Add it to the IO-APIC irq-routing table:
|
||||||
|
@@ -1246,7 +1246,7 @@ void __apicdebuginit print_local_APIC(void * dummy)
|
|||||||
printk("\n" KERN_DEBUG "printing local APIC contents on CPU#%d/%d:\n",
|
printk("\n" KERN_DEBUG "printing local APIC contents on CPU#%d/%d:\n",
|
||||||
smp_processor_id(), hard_smp_processor_id());
|
smp_processor_id(), hard_smp_processor_id());
|
||||||
v = apic_read(APIC_ID);
|
v = apic_read(APIC_ID);
|
||||||
printk(KERN_INFO "... APIC ID: %08x (%01x)\n", v, GET_APIC_ID(read_apic_id()));
|
printk(KERN_INFO "... APIC ID: %08x (%01x)\n", v, read_apic_id());
|
||||||
v = apic_read(APIC_LVR);
|
v = apic_read(APIC_LVR);
|
||||||
printk(KERN_INFO "... APIC VERSION: %08x\n", v);
|
printk(KERN_INFO "... APIC VERSION: %08x\n", v);
|
||||||
ver = GET_APIC_VERSION(v);
|
ver = GET_APIC_VERSION(v);
|
||||||
@@ -1439,7 +1439,7 @@ void disable_IO_APIC(void)
|
|||||||
entry.dest_mode = 0; /* Physical */
|
entry.dest_mode = 0; /* Physical */
|
||||||
entry.delivery_mode = dest_ExtINT; /* ExtInt */
|
entry.delivery_mode = dest_ExtINT; /* ExtInt */
|
||||||
entry.vector = 0;
|
entry.vector = 0;
|
||||||
entry.dest = GET_APIC_ID(read_apic_id());
|
entry.dest = read_apic_id();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add it to the IO-APIC irq-routing table:
|
* Add it to the IO-APIC irq-routing table:
|
||||||
|
@@ -211,7 +211,7 @@ static void __cpuinit smp_callin(void)
|
|||||||
/*
|
/*
|
||||||
* (This works even if the APIC is not enabled.)
|
* (This works even if the APIC is not enabled.)
|
||||||
*/
|
*/
|
||||||
phys_id = GET_APIC_ID(read_apic_id());
|
phys_id = read_apic_id();
|
||||||
cpuid = smp_processor_id();
|
cpuid = smp_processor_id();
|
||||||
if (cpu_isset(cpuid, cpu_callin_map)) {
|
if (cpu_isset(cpuid, cpu_callin_map)) {
|
||||||
panic("%s: phys CPU#%d, CPU#%d already present??\n", __func__,
|
panic("%s: phys CPU#%d, CPU#%d already present??\n", __func__,
|
||||||
@@ -1157,9 +1157,9 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
|
|||||||
}
|
}
|
||||||
|
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
if (GET_APIC_ID(read_apic_id()) != boot_cpu_physical_apicid) {
|
if (read_apic_id() != boot_cpu_physical_apicid) {
|
||||||
panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
|
panic("Boot APIC ID in local APIC unexpected (%d vs %d)",
|
||||||
GET_APIC_ID(read_apic_id()), boot_cpu_physical_apicid);
|
read_apic_id(), boot_cpu_physical_apicid);
|
||||||
/* Or can we switch back to PIC here? */
|
/* Or can we switch back to PIC here? */
|
||||||
}
|
}
|
||||||
preempt_enable();
|
preempt_enable();
|
||||||
|
@@ -56,7 +56,7 @@ static inline void init_apic_ldr(void)
|
|||||||
|
|
||||||
static inline int apic_id_registered(void)
|
static inline int apic_id_registered(void)
|
||||||
{
|
{
|
||||||
return physid_isset(GET_APIC_ID(read_apic_id()), phys_cpu_present_map);
|
return physid_isset(read_apic_id(), phys_cpu_present_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
|
static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
|
||||||
|
@@ -5,9 +5,8 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
#define APIC_ID_MASK (0xFFu<<24)
|
#define APIC_ID_MASK (0xFFu<<24)
|
||||||
#define GET_APIC_ID(x) (x)
|
#define GET_APIC_ID(x) (((x)>>24) & 0xFFu)
|
||||||
#define SET_APIC_ID(x) (((x)<<24))
|
#define SET_APIC_ID(x) (((x)<<24))
|
||||||
#define GET_XAPIC_ID(x) (((x) >> 24) & 0xFFu)
|
|
||||||
#else
|
#else
|
||||||
#define APIC_ID_MASK (0xF<<24)
|
#define APIC_ID_MASK (0xF<<24)
|
||||||
static inline unsigned get_apic_id(unsigned long x)
|
static inline unsigned get_apic_id(unsigned long x)
|
||||||
|
@@ -141,7 +141,7 @@ static inline void setup_portio_remap(void)
|
|||||||
extern unsigned int boot_cpu_physical_apicid;
|
extern unsigned int boot_cpu_physical_apicid;
|
||||||
static inline int check_phys_apicid_present(int cpu_physical_apicid)
|
static inline int check_phys_apicid_present(int cpu_physical_apicid)
|
||||||
{
|
{
|
||||||
boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id());
|
boot_cpu_physical_apicid = read_apic_id();
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -165,9 +165,14 @@ static inline int logical_smp_processor_id(void)
|
|||||||
return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR));
|
return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include <mach_apicdef.h>
|
||||||
static inline unsigned int read_apic_id(void)
|
static inline unsigned int read_apic_id(void)
|
||||||
{
|
{
|
||||||
return *(u32 *)(APIC_BASE + APIC_ID);
|
unsigned int reg;
|
||||||
|
|
||||||
|
reg = *(u32 *)(APIC_BASE + APIC_ID);
|
||||||
|
|
||||||
|
return GET_APIC_ID(reg);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -179,7 +184,7 @@ extern int hard_smp_processor_id(void);
|
|||||||
static inline int hard_smp_processor_id(void)
|
static inline int hard_smp_processor_id(void)
|
||||||
{
|
{
|
||||||
/* we don't want to mark this access volatile - bad code generation */
|
/* we don't want to mark this access volatile - bad code generation */
|
||||||
return GET_APIC_ID(read_apic_id());
|
return read_apic_id();
|
||||||
}
|
}
|
||||||
# endif /* APIC_DEFINITION */
|
# endif /* APIC_DEFINITION */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user