aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/apic.c
diff options
context:
space:
mode:
authorAshok Raj <ashok.raj@intel.com>2005-06-25 17:54:58 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 19:24:30 -0400
commite6982c671c560da4a0bc5c908cbcbec12bd5991d (patch)
tree38e317c28afbde68d431ae139e9e943e5a818b06 /arch/x86_64/kernel/apic.c
parent52a119feaad92d44a0e97d01b22afbcbaf3fc079 (diff)
[PATCH] x86_64: Change init sections for CPU hotplug support
This patch adds __cpuinit and __cpuinitdata sections that need to exist past boot to support cpu hotplug. Caveat: This is done *only* for EM64T CPU Hotplug support, on request from Andi Kleen. Much of the generic hotplug code in kernel, and none of the other archs that support CPU hotplug today, i386, ia64, ppc64, s390 and parisc dont mark sections with __cpuinit, but only mark them as __devinit, and __devinitdata. If someone is motivated to change generic code, we need to make sure all existing hotplug code does not break, on other arch's that dont use __cpuinit, and __cpudevinit. Signed-off-by: Ashok Raj <ashok.raj@intel.com> Acked-by: Andi Kleen <ak@muc.de> Acked-by: Zwane Mwaikambo <zwane@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/apic.c')
-rw-r--r--arch/x86_64/kernel/apic.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c
index f8e6cc4fecd4..2a6c893ccf60 100644
--- a/arch/x86_64/kernel/apic.c
+++ b/arch/x86_64/kernel/apic.c
@@ -285,7 +285,7 @@ void __init init_bsp_APIC(void)
285 apic_write_around(APIC_LVT1, value); 285 apic_write_around(APIC_LVT1, value);
286} 286}
287 287
288void __init setup_local_APIC (void) 288void __cpuinit setup_local_APIC (void)
289{ 289{
290 unsigned int value, ver, maxlvt; 290 unsigned int value, ver, maxlvt;
291 291
@@ -534,7 +534,7 @@ static struct sys_device device_lapic = {
534 .cls = &lapic_sysclass, 534 .cls = &lapic_sysclass,
535}; 535};
536 536
537static void __init apic_pm_activate(void) 537static void __cpuinit apic_pm_activate(void)
538{ 538{
539 apic_pm_state.active = 1; 539 apic_pm_state.active = 1;
540} 540}
@@ -774,14 +774,14 @@ void __init setup_boot_APIC_clock (void)
774 local_irq_enable(); 774 local_irq_enable();
775} 775}
776 776
777void __init setup_secondary_APIC_clock(void) 777void __cpuinit setup_secondary_APIC_clock(void)
778{ 778{
779 local_irq_disable(); /* FIXME: Do we need this? --RR */ 779 local_irq_disable(); /* FIXME: Do we need this? --RR */
780 setup_APIC_timer(calibration_result); 780 setup_APIC_timer(calibration_result);
781 local_irq_enable(); 781 local_irq_enable();
782} 782}
783 783
784void __init disable_APIC_timer(void) 784void __cpuinit disable_APIC_timer(void)
785{ 785{
786 if (using_apic_timer) { 786 if (using_apic_timer) {
787 unsigned long v; 787 unsigned long v;