x86_64: Change GET_APIC_ID() from an inline function to an out-of-line function
Subsystems (2)
PATCH 1/8 x86_64: Change GET_APIC_ID() from an inline function to an out-of-line function
Introduce a function to read the local APIC_ID.
This change is in preparation for additional changes to the APICID functions that will come in a later patch.
Based on:
git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
Signed-off-by Jack Steiner <[email protected]>
--- arch/x86/kernel/apic_32.c | 4 ++-- arch/x86/kernel/apic_64.c | 10 +++++----- arch/x86/kernel/genapic_flat_64.c | 2 +- arch/x86/kernel/io_apic_32.c | 6 +++--- arch/x86/kernel/io_apic_64.c | 5 ++--- arch/x86/kernel/mpparse_32.c | 2 +- arch/x86/kernel/mpparse_64.c | 2 +- arch/x86/kernel/smpboot.c | 6 +++--- include/asm-x86/mach-default/mach_apic.h | 2 +- include/asm-x86/mach-es7000/mach_apic.h | 2 +- include/asm-x86/mach-visws/mach_apic.h | 2 +- include/asm-x86/smp.h | 7 ++++++- 12 files changed, 27 insertions(+), 23 deletions(-)
arch/x86/kernel/apic_32.c +2 -2
@@ -1195,7 +1195,7 @@ void __init init_apic_mappings(void)* default configuration (or the MP table is broken). */ if (boot_cpu_physical_apicid ==-1U ) - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ());#ifdef CONFIG_X86_IO_APIC {
@@ -1265,7 +1265,7 @@ int __init APIC_init_uniprocessor(void)* might be zero if read from MP tables. Get it from LAPIC. */ #ifdef CONFIG_CRASH_DUMP - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ());#endif phys_cpu_present_map =physid_mask_of_physid (boot_cpu_physical_apicid);
arch/x86/kernel/apic_64.c +5 -5
@@ -650,10 +650,10 @@ int __init verify_local_APIC(void)/* * The ID register is read/write in a real APIC. */ - reg0 =apic_read (APIC_ID ); + reg0 =read_apic_id ();apic_printk (APIC_DEBUG ,"Getting ID: %x\n" , reg0);apic_write (APIC_ID , reg0 ^APIC_ID_MASK ); - reg1 =apic_read (APIC_ID ); + reg1 =read_apic_id ();apic_printk (APIC_DEBUG ,"Getting ID: %x\n" , reg1);apic_write (APIC_ID , reg0);if (reg1 != (reg0 ^APIC_ID_MASK ))
@@ -892,7 +892,7 @@ void __init early_init_lapic_mapping(voi* Fetch the APIC ID of the BSP in case we have a * default configuration (or the MP table is broken). */ - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ()); }/**
@@ -919,7 +919,7 @@ void __init init_apic_mappings(void)* Fetch the APIC ID of the BSP in case we have a * default configuration (or the MP table is broken). */ - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ()); }/*
@@ -1140,7 +1140,7 @@ static int lapic_suspend(struct sys_devi maxlvt =lapic_get_maxlvt (); - apic_pm_state.apic_id =apic_read (APIC_ID ); + apic_pm_state.apic_id =read_apic_id (); apic_pm_state.apic_taskpri =apic_read (APIC_TASKPRI ); apic_pm_state.apic_ldr =apic_read (APIC_LDR ); apic_pm_state.apic_dfr =apic_read (APIC_DFR );
arch/x86/kernel/genapic_flat_64.c +1 -1
@@ -97,7 +97,7 @@ static void flat_send_IPI_all(int vectorstatic int flat_apic_id_registered (void ) { -return physid_isset (GET_APIC_ID (apic_read (APIC_ID )), phys_cpu_present_map); +return physid_isset (GET_APIC_ID (read_apic_id ()), phys_cpu_present_map); }static unsigned int flat_cpu_mask_to_apicid (cpumask_t cpumask)
arch/x86/kernel/io_apic_32.c +3 -3
@@ -1482,8 +1482,8 @@ void /*__init*/ print_local_APIC(void *printk ("\n" KERN_DEBUG "printing local APIC contents on CPU#%d/%d:\n" ,smp_processor_id (),hard_smp_processor_id ()); - v =apic_read (APIC_ID ); -printk (KERN_INFO "... APIC ID: %08x (%01x)\n" , v,GET_APIC_ID (v)); +printk (KERN_INFO "... APIC ID: %08x (%01x)\n" , v, +GET_APIC_ID (read_apic_id ())); v =apic_read (APIC_LVR );printk (KERN_INFO "... APIC VERSION: %08x\n" , v); ver =GET_APIC_VERSION (v);
@@ -1692,7 +1692,7 @@ void disable_IO_APIC(void) entry.delivery_mode = dest_ExtINT;/* ExtInt */ entry.vector =0 ; entry.dest.physical.physical_dest = -GET_APIC_ID (apic_read (APIC_ID )); +GET_APIC_ID (read_apic_id ());/* * Add it to the IO-APIC irq-routing table:
arch/x86/kernel/io_apic_64.c +2 -3
@@ -1068,8 +1068,7 @@ void __apicdebuginit print_local_APIC(voprintk ("\n" KERN_DEBUG "printing local APIC contents on CPU#%d/%d:\n" ,smp_processor_id (),hard_smp_processor_id ()); - v =apic_read (APIC_ID ); -printk (KERN_INFO "... APIC ID: %08x (%01x)\n" , v,GET_APIC_ID (v)); +printk (KERN_INFO "... APIC ID: %08x (%01x)\n" , v,GET_APIC_ID (read_apic_id ())); v =apic_read (APIC_LVR );printk (KERN_INFO "... APIC VERSION: %08x\n" , v); ver =GET_APIC_VERSION (v);
@@ -1263,7 +1262,7 @@ void disable_IO_APIC(void) entry.dest_mode =0 ;/* Physical */ entry.delivery_mode = dest_ExtINT;/* ExtInt */ entry.vector =0 ; - entry.dest =GET_APIC_ID (apic_read (APIC_ID )); + entry.dest =GET_APIC_ID (read_apic_id ());/* * Add it to the IO-APIC irq-routing table:
arch/x86/kernel/mpparse_32.c +1 -1
@@ -802,7 +802,7 @@ void __init mp_register_lapic_address(u6set_fixmap_nocache (FIX_APIC_BASE , mp_lapic_addr);if (boot_cpu_physical_apicid ==-1U ) - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ());Dprintk ("Boot CPU = %d\n" , boot_cpu_physical_apicid); }
arch/x86/kernel/mpparse_64.c +1 -1
@@ -631,7 +631,7 @@ void __init mp_register_lapic_address(u6 mp_lapic_addr = (unsigned long )address;set_fixmap_nocache (FIX_APIC_BASE , mp_lapic_addr);if (boot_cpu_physical_apicid ==-1U ) - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ()); }#define MP_ISA_BUS 0
arch/x86/kernel/smpboot.c +3 -3
@@ -237,7 +237,7 @@ void __cpuinit smp_callin(void)/* * (This works even if the APIC is not enabled.) */ - phys_id =GET_APIC_ID (apic_read (APIC_ID )); + phys_id =GET_APIC_ID (read_apic_id ()); cpuid =smp_processor_id ();if (cpu_isset (cpuid, cpu_callin_map)) { panic("%s: phys CPU#%d, CPU#%d already present??\n", __func__,
@@ -1205,9 +1205,9 @@ void __init native_smp_prepare_cpus(unsireturn ; } -if (GET_APIC_ID (apic_read (APIC_ID )) != boot_cpu_physical_apicid) { +if (GET_APIC_ID (read_apic_id ()) != boot_cpu_physical_apicid) {panic ("Boot APIC ID in local APIC unexpected (%d vs %d)" , -GET_APIC_ID (apic_read (APIC_ID )), boot_cpu_physical_apicid); +GET_APIC_ID (read_apic_id ()), boot_cpu_physical_apicid);/* Or can we switch back to PIC here? */ }
include/asm-x86/mach-default/mach_apic.h +1 -1
@@ -54,7 +54,7 @@ static inline void init_apic_ldr(void)static inline int apic_id_registered (void ) { -return physid_isset (GET_APIC_ID (apic_read (APIC_ID )), phys_cpu_present_map); +return physid_isset (GET_APIC_ID (read_apic_id ()), phys_cpu_present_map); }static inline unsigned int cpu_mask_to_apicid (cpumask_t cpumask)
include/asm-x86/mach-es7000/mach_apic.h +1 -1
@@ -141,7 +141,7 @@ static inline void setup_portio_remap(voextern unsigned int boot_cpu_physical_apicid;static inline int check_phys_apicid_present (int cpu_physical_apicid) { - boot_cpu_physical_apicid =GET_APIC_ID (apic_read (APIC_ID )); + boot_cpu_physical_apicid =GET_APIC_ID (read_apic_id ());return (1 ); }
include/asm-x86/mach-visws/mach_apic.h +1 -1
@@ -23,7 +23,7 @@static inline int apic_id_registered (void ) { -return physid_isset (GET_APIC_ID (apic_read (APIC_ID )), phys_cpu_present_map); +return physid_isset (GET_APIC_ID (read_apic_id ()), phys_cpu_present_map); }/*
include/asm-x86/smp.h +6 -1
@@ -179,6 +179,11 @@ static inline int logical_smp_processor_return GET_APIC_LOGICAL_ID (*(u32 *)(APIC_BASE +APIC_LDR )); } +static inline unsigned int read_apic_id (void ) +{ +return *(u32 *)(APIC_BASE +APIC_ID ); +} +# ifdef APIC_DEFINITION extern int hard_smp_processor_id (void );# else
@@ -186,7 +191,7 @@ extern 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 */ -return GET_APIC_ID (*(u32 *)(APIC_BASE +APIC_ID )); +return GET_APIC_ID (read_apic_id ()); }# endif /* APIC_DEFINITION */
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>