aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/acpi/wakeup_32.S4
-rw-r--r--arch/x86/kernel/cpu/intel_cacheinfo.c2
-rw-r--r--arch/x86/kernel/crash.c4
-rw-r--r--arch/x86/kernel/head_32.S12
-rw-r--r--arch/x86/kernel/hpet.c14
-rw-r--r--arch/x86/kernel/nmi_32.c3
-rw-r--r--arch/x86/kernel/nmi_64.c3
-rw-r--r--arch/x86/kernel/reboot_32.c4
-rw-r--r--arch/x86/kernel/reboot_64.c4
-rw-r--r--arch/x86/kernel/topology.c5
10 files changed, 40 insertions, 15 deletions
diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
index a97313b1270e..1e931aaf2ef6 100644
--- a/arch/x86/kernel/acpi/wakeup_32.S
+++ b/arch/x86/kernel/acpi/wakeup_32.S
@@ -35,10 +35,6 @@ wakeup_code:
35 wakeup_code_start = . 35 wakeup_code_start = .
36 .code16 36 .code16
37 37
38 movw $0xb800, %ax
39 movw %ax,%fs
40 movw $0x0e00 + 'L', %fs:(0x10)
41
42 cli 38 cli
43 cld 39 cld
44 40
diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
index 9921b01fe199..606fe4d55a91 100644
--- a/arch/x86/kernel/cpu/intel_cacheinfo.c
+++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
@@ -497,7 +497,7 @@ static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index) {}
497static void __cpuinit cache_remove_shared_cpu_map(unsigned int cpu, int index) {} 497static void __cpuinit cache_remove_shared_cpu_map(unsigned int cpu, int index) {}
498#endif 498#endif
499 499
500static void free_cache_attributes(unsigned int cpu) 500static void __cpuinit free_cache_attributes(unsigned int cpu)
501{ 501{
502 int i; 502 int i;
503 503
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 8bb482ff091b..9a5fa0abfcc7 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -22,6 +22,7 @@
22#include <asm/nmi.h> 22#include <asm/nmi.h>
23#include <asm/hw_irq.h> 23#include <asm/hw_irq.h>
24#include <asm/apic.h> 24#include <asm/apic.h>
25#include <asm/hpet.h>
25#include <linux/kdebug.h> 26#include <linux/kdebug.h>
26#include <asm/smp.h> 27#include <asm/smp.h>
27 28
@@ -140,5 +141,8 @@ void machine_crash_shutdown(struct pt_regs *regs)
140#if defined(CONFIG_X86_IO_APIC) 141#if defined(CONFIG_X86_IO_APIC)
141 disable_IO_APIC(); 142 disable_IO_APIC();
142#endif 143#endif
144#ifdef CONFIG_HPET_TIMER
145 hpet_disable();
146#endif
143 crash_save_cpu(regs, safe_smp_processor_id()); 147 crash_save_cpu(regs, safe_smp_processor_id());
144} 148}
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index 374b7ece8961..ac0637a6d71c 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -193,6 +193,12 @@ default_entry:
193 jb 10b 193 jb 10b
194 movl %edi,(init_pg_tables_end - __PAGE_OFFSET) 194 movl %edi,(init_pg_tables_end - __PAGE_OFFSET)
195 195
196 /* Do an early initialization of the fixmap area */
197 movl $(swapper_pg_dir - __PAGE_OFFSET), %edx
198 movl $(swapper_pg_pmd - __PAGE_OFFSET), %eax
199 addl $0x007, %eax /* 0x007 = PRESENT+RW+USER */
200 movl %eax, 4092(%edx)
201
196 xorl %ebx,%ebx /* This is the boot CPU (BSP) */ 202 xorl %ebx,%ebx /* This is the boot CPU (BSP) */
197 jmp 3f 203 jmp 3f
198/* 204/*
@@ -208,12 +214,6 @@ default_entry:
208.section .init.text,"ax",@progbits 214.section .init.text,"ax",@progbits
209#endif 215#endif
210 216
211 /* Do an early initialization of the fixmap area */
212 movl $(swapper_pg_dir - __PAGE_OFFSET), %edx
213 movl $(swapper_pg_pmd - __PAGE_OFFSET), %eax
214 addl $0x007, %eax /* 0x007 = PRESENT+RW+USER */
215 movl %eax, 4092(%edx)
216
217#ifdef CONFIG_SMP 217#ifdef CONFIG_SMP
218ENTRY(startup_32_smp) 218ENTRY(startup_32_smp)
219 cld 219 cld
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 53303f2e5475..4a86ffd67ec5 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -446,6 +446,20 @@ static __init int hpet_late_init(void)
446} 446}
447fs_initcall(hpet_late_init); 447fs_initcall(hpet_late_init);
448 448
449void hpet_disable(void)
450{
451 if (is_hpet_capable()) {
452 unsigned long cfg = hpet_readl(HPET_CFG);
453
454 if (hpet_legacy_int_enabled) {
455 cfg &= ~HPET_CFG_LEGACY;
456 hpet_legacy_int_enabled = 0;
457 }
458 cfg &= ~HPET_CFG_ENABLE;
459 hpet_writel(cfg, HPET_CFG);
460 }
461}
462
449#ifdef CONFIG_HPET_EMULATE_RTC 463#ifdef CONFIG_HPET_EMULATE_RTC
450 464
451/* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET 465/* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET
diff --git a/arch/x86/kernel/nmi_32.c b/arch/x86/kernel/nmi_32.c
index f5cc47c60b13..80ca72e5ac29 100644
--- a/arch/x86/kernel/nmi_32.c
+++ b/arch/x86/kernel/nmi_32.c
@@ -106,7 +106,8 @@ static int __init check_nmi_watchdog(void)
106 if (!per_cpu(wd_enabled, cpu)) 106 if (!per_cpu(wd_enabled, cpu))
107 continue; 107 continue;
108 if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) { 108 if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) {
109 printk("CPU#%d: NMI appears to be stuck (%d->%d)!\n", 109 printk(KERN_WARNING "WARNING: CPU#%d: NMI "
110 "appears to be stuck (%d->%d)!\n",
110 cpu, 111 cpu,
111 prev_nmi_count[cpu], 112 prev_nmi_count[cpu],
112 nmi_count(cpu)); 113 nmi_count(cpu));
diff --git a/arch/x86/kernel/nmi_64.c b/arch/x86/kernel/nmi_64.c
index a576fd740062..4253c4e8849c 100644
--- a/arch/x86/kernel/nmi_64.c
+++ b/arch/x86/kernel/nmi_64.c
@@ -109,7 +109,8 @@ int __init check_nmi_watchdog (void)
109 if (!per_cpu(wd_enabled, cpu)) 109 if (!per_cpu(wd_enabled, cpu))
110 continue; 110 continue;
111 if (cpu_pda(cpu)->__nmi_count - counts[cpu] <= 5) { 111 if (cpu_pda(cpu)->__nmi_count - counts[cpu] <= 5) {
112 printk("CPU#%d: NMI appears to be stuck (%d->%d)!\n", 112 printk(KERN_WARNING "WARNING: CPU#%d: NMI "
113 "appears to be stuck (%d->%d)!\n",
113 cpu, 114 cpu,
114 counts[cpu], 115 counts[cpu],
115 cpu_pda(cpu)->__nmi_count); 116 cpu_pda(cpu)->__nmi_count);
diff --git a/arch/x86/kernel/reboot_32.c b/arch/x86/kernel/reboot_32.c
index 9e2269d00918..bb1a0f889c5e 100644
--- a/arch/x86/kernel/reboot_32.c
+++ b/arch/x86/kernel/reboot_32.c
@@ -11,6 +11,7 @@
11#include <linux/reboot.h> 11#include <linux/reboot.h>
12#include <asm/uaccess.h> 12#include <asm/uaccess.h>
13#include <asm/apic.h> 13#include <asm/apic.h>
14#include <asm/hpet.h>
14#include <asm/desc.h> 15#include <asm/desc.h>
15#include "mach_reboot.h" 16#include "mach_reboot.h"
16#include <asm/reboot_fixups.h> 17#include <asm/reboot_fixups.h>
@@ -326,6 +327,9 @@ static void native_machine_shutdown(void)
326#ifdef CONFIG_X86_IO_APIC 327#ifdef CONFIG_X86_IO_APIC
327 disable_IO_APIC(); 328 disable_IO_APIC();
328#endif 329#endif
330#ifdef CONFIG_HPET_TIMER
331 hpet_disable();
332#endif
329} 333}
330 334
331void __attribute__((weak)) mach_reboot_fixups(void) 335void __attribute__((weak)) mach_reboot_fixups(void)
diff --git a/arch/x86/kernel/reboot_64.c b/arch/x86/kernel/reboot_64.c
index 71b13c5f5817..53620a92a8fd 100644
--- a/arch/x86/kernel/reboot_64.c
+++ b/arch/x86/kernel/reboot_64.c
@@ -17,6 +17,7 @@
17#include <asm/pgtable.h> 17#include <asm/pgtable.h>
18#include <asm/tlbflush.h> 18#include <asm/tlbflush.h>
19#include <asm/apic.h> 19#include <asm/apic.h>
20#include <asm/hpet.h>
20#include <asm/gart.h> 21#include <asm/gart.h>
21 22
22/* 23/*
@@ -113,6 +114,9 @@ void machine_shutdown(void)
113 114
114 disable_IO_APIC(); 115 disable_IO_APIC();
115 116
117#ifdef CONFIG_HPET_TIMER
118 hpet_disable();
119#endif
116 local_irq_restore(flags); 120 local_irq_restore(flags);
117 121
118 pci_iommu_shutdown(); 122 pci_iommu_shutdown();
diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c
index 8caa0b777466..7e16d675eb85 100644
--- a/arch/x86/kernel/topology.c
+++ b/arch/x86/kernel/topology.c
@@ -33,7 +33,7 @@
33 33
34static struct i386_cpu cpu_devices[NR_CPUS]; 34static struct i386_cpu cpu_devices[NR_CPUS];
35 35
36int arch_register_cpu(int num) 36int __cpuinit arch_register_cpu(int num)
37{ 37{
38 /* 38 /*
39 * CPU0 cannot be offlined due to several 39 * CPU0 cannot be offlined due to several
@@ -53,7 +53,8 @@ int arch_register_cpu(int num)
53} 53}
54 54
55#ifdef CONFIG_HOTPLUG_CPU 55#ifdef CONFIG_HOTPLUG_CPU
56void arch_unregister_cpu(int num) { 56void arch_unregister_cpu(int num)
57{
57 return unregister_cpu(&cpu_devices[num].cpu); 58 return unregister_cpu(&cpu_devices[num].cpu);
58} 59}
59EXPORT_SYMBOL(arch_register_cpu); 60EXPORT_SYMBOL(arch_register_cpu);