x86: change GET_APIC_ID() from an inline function to an out-of-line function
authorJack Steiner <steiner@sgi.com>
Fri, 28 Mar 2008 19:12:02 +0000 (14:12 -0500)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:41:33 +0000 (17:41 +0200)
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.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
12 files changed:
arch/x86/kernel/apic_32.c
arch/x86/kernel/apic_64.c
arch/x86/kernel/genapic_flat_64.c
arch/x86/kernel/io_apic_32.c
arch/x86/kernel/io_apic_64.c
arch/x86/kernel/mpparse_32.c
arch/x86/kernel/mpparse_64.c
arch/x86/kernel/smpboot.c
include/asm-x86/mach-default/mach_apic.h
include/asm-x86/mach-es7000/mach_apic.h
include/asm-x86/mach-visws/mach_apic.h
include/asm-x86/smp.h

index a99398f712343bcc2b8740d2ec94321b2ba3ea5e..4905a11b30e31683967879b8b3179a3a834f2c44 100644 (file)
@@ -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);
 
index 4ee521ff0a3ec86d39ef09473ee95bab531b3e0c..9b4cacdfd74fdb4a83fa7db0619e0fbac3754bd5 100644 (file)
@@ -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(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());
 }
 
 /**
@@ -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_device *dev, pm_message_t state)
 
        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);
index 07352b74bda6dfaac343ef5caa5674c6fde77a9e..6a44e8dace372519aa23eadfcb3df70bda21792e 100644 (file)
@@ -97,7 +97,7 @@ static void flat_send_IPI_all(int vector)
 
 static 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)
index 8ed6eb9676521b12ad36a041e03a85a1b5c8d5be..bfebe7a1966d84f65c3dfa3ca48dece362f358cd 100644 (file)
@@ -1482,8 +1482,8 @@ void /*__init*/ print_local_APIC(void * dummy)
 
        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:
index 6dd33628f28aea95e8257ac6636a4f469b80f954..0ac92d6acf5744ed9c17498cc2a98e2aca323026 100644 (file)
@@ -1068,8 +1068,7 @@ void __apicdebuginit print_local_APIC(void * dummy)
 
        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);
@@ -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:
index cd4522b3e90e84ac8c443a7c135fb9f6075d1d7e..4b46a37e0634413ecc453612ea4010fe5c119a26 100644 (file)
@@ -802,7 +802,7 @@ void __init mp_register_lapic_address(u64 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());
 
        Dprintk("Boot CPU = %d\n", boot_cpu_physical_apicid);
 }
index 5e789bdb34fa518d2ee1683552889be827db1fc5..29d2c40e54a2317716c464665bb041cac01c53fb 100644 (file)
@@ -631,7 +631,7 @@ void __init mp_register_lapic_address(u64 address)
        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());
 }
 void __cpuinit mp_register_lapic(u8 id, u8 enabled)
 {
index f45d740b1b6a80e3cfeeb4c86969ed724d030fc4..5da35d2cdbd8073b6db9f20458be59fccb382b74 100644 (file)
@@ -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(unsigned int max_cpus)
                return;
        }
 
-       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? */
        }
 
index 1f56e7d5bfddedecee94bfb2023dbf025d0454d3..14217a970c5e31a9c1746e7e5c97910900d0175c 100644 (file)
@@ -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)
index 0137b6e142ccd7da1b786e12d1d544e7cca62974..fbc8ad256f5aadda25deaeb7d7564515ec1e12ca 100644 (file)
@@ -141,7 +141,7 @@ static inline void setup_portio_remap(void)
 extern 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);
 }
 
index efac6f0d139f91e48a5219e47cef3ba5b285ca5d..a9ef33a8a9950a26d1dcfc533faebab0841cb80b 100644 (file)
@@ -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);
 }
 
 /*
index bcbd25cbd863ff4af157a9a1dd5c37018b085052..c0d693ca43576724ad2b19ef5e3c4be3ab72a6fb 100644 (file)
@@ -174,6 +174,11 @@ static inline int logical_smp_processor_id(void)
        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
@@ -181,7 +186,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 */