diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
commit | 546db14ee74118296f425f3b91634fb767d67290 (patch) | |
tree | 22b613a3da8d4bf663eec5e155af01b87fdf9094 /arch/i386/kernel/traps.c | |
parent | 1e25e41c4f5474e14452094492dbc169b800e4c8 (diff) |
Merge with Linux 2.3.23. The new bootmem stuff has broken various
platforms. At this time I've only verified that IP22 support compiles
and IP27 actually works.
Diffstat (limited to 'arch/i386/kernel/traps.c')
-rw-r--r-- | arch/i386/kernel/traps.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index ebd1cd002..f66f2363c 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c @@ -581,6 +581,7 @@ asmlinkage void math_emulate(long arg) #endif /* CONFIG_MATH_EMULATION */ +#ifndef CONFIG_M686 void __init trap_init_f00f_bug(void) { unsigned long page; @@ -596,8 +597,8 @@ void __init trap_init_f00f_bug(void) pgd = pgd_offset(&init_mm, page); pmd = pmd_offset(pgd, page); pte = pte_offset(pmd, page); - free_page(pte_page(*pte)); - *pte = mk_pte(&idt_table, PAGE_KERNEL_RO); + __free_page(pte_page(*pte)); + *pte = mk_pte_phys(__pa(&idt_table), PAGE_KERNEL_RO); local_flush_tlb(); /* @@ -608,6 +609,7 @@ void __init trap_init_f00f_bug(void) idt = (struct desc_struct *)page; __asm__ __volatile__("lidt %0": "=m" (idt_descr)); } +#endif #define _set_gate(gate_addr,type,dpl,addr) \ do { \ @@ -772,7 +774,7 @@ cobalt_init(void) #endif void __init trap_init(void) { - if (readl(0x0FFFD9) == 'E' + ('I'<<8) + ('S'<<16) + ('A'<<24)) + if (isa_readl(0x0FFFD9) == 'E'+('I'<<8)+('S'<<16)+('A'<<24)) EISA_bus = 1; set_trap_gate(0,÷_error); |