History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86

* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: x86: fix x86-32 early fixmap initialization. x86: disable hpet legacy replacement for kdump x86: disable hpet on shutdown

Linus Torvalds committed 18 years ago

Commit 1a2edea2 parents f589b86 17d57a96 files · +33 −6Browse files

Unified · Split

6 files
  1. arch/x86/kernel/crash.c +4 −0
  2. arch/x86/kernel/head_32.S +6 −6
  3. arch/x86/kernel/hpet.c +14 −0
  4. arch/x86/kernel/reboot_32.c +4 −0
  5. arch/x86/kernel/reboot_64.c +4 −0
  6. include/asm-x86/hpet.h +1 −0
arch/x86/kernel/crash.c+4−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
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
@@ -139,6 +140,9 @@ void machine_crash_shutdown(struct pt_regs *regs) · 111 unmodified lines
139 lapic_shutdown();140 lapic_shutdown();
140#if defined(CONFIG_X86_IO_APIC)141#if defined(CONFIG_X86_IO_APIC)
141 disable_IO_APIC();142 disable_IO_APIC();
143#endif
144#ifdef CONFIG_HPET_TIMER
145 hpet_disable();
142#endif146#endif
143 crash_save_cpu(regs, safe_smp_processor_id());147 crash_save_cpu(regs, safe_smp_processor_id());
144}148}
arch/x86/kernel/head_32.S+6−6
@@ -193,6 +193,12 @@ default_entry: · 192 unmodified lines
193 jb 10b193 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 3f203 jmp 3f
198/*204/*
@@ -208,12 +214,6 @@ default_entry: · 9 unmodified lines
208.section .init.text,"ax",@progbits214.section .init.text,"ax",@progbits
209#endif215#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_SMP217#ifdef CONFIG_SMP
218ENTRY(startup_32_smp)218ENTRY(startup_32_smp)
219 cld219 cld
arch/x86/kernel/hpet.c+14−0
@@ -446,6 +446,20 @@ static __init int hpet_late_init(void) · 445 unmodified lines
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_RTC463#ifdef CONFIG_HPET_EMULATE_RTC
450 464
451/* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET465/* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET
arch/x86/kernel/reboot_32.c+4−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
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) · 309 unmodified lines
326#ifdef CONFIG_X86_IO_APIC327#ifdef CONFIG_X86_IO_APIC
327 disable_IO_APIC();328 disable_IO_APIC();
328#endif329#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)
arch/x86/kernel/reboot_64.c+4−0
@@ -17,6 +17,7 @@ · 16 unmodified lines
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) · 90 unmodified lines
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();
include/asm-x86/hpet.h+1−0
@@ -61,6 +61,7 @@ extern unsigned long force_hpet_address; · 60 unmodified lines
61extern int hpet_force_user;61extern int hpet_force_user;
62extern int is_hpet_enabled(void);62extern int is_hpet_enabled(void);
63extern int hpet_enable(void);63extern int hpet_enable(void);
64extern void hpet_disable(void);
64extern unsigned long hpet_readl(unsigned long a);65extern unsigned long hpet_readl(unsigned long a);
65extern void force_hpet_resume(void);66extern void force_hpet_resume(void);
66 67