patch-2.1.65 linux/arch/i386/kernel/traps.c
Next file: linux/arch/i386/mm/fault.c
Previous file: linux/arch/i386/kernel/entry.S
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
Mon Nov 17 11:17:40 1997
- Orig file:
v2.1.64/linux/arch/i386/kernel/traps.c
- Orig date:
Mon Nov 17 18:47:20 1997
diff -u --recursive --new-file v2.1.64/linux/arch/i386/kernel/traps.c linux/arch/i386/kernel/traps.c
@@ -103,6 +103,7 @@
asmlinkage void stack_segment(void);
asmlinkage void general_protection(void);
asmlinkage void page_fault(void);
+asmlinkage void page_fault_f00f(void);
asmlinkage void coprocessor_error(void);
asmlinkage void reserved(void);
asmlinkage void alignment_check(void);
@@ -418,6 +419,14 @@
unsigned long page;
/*
+ * We use a special page fault handler, to actually detect
+ * 'bounced' traps/exceptions #0-6. This new page fault
+ * handler is a few tens of cycles slower than the 'normal'
+ * one.
+ */
+ set_trap_gate(14,&page_fault_f00f);
+
+ /*
* Allocate a new page in virtual address space,
* and move the IDT to have entry #7 starting at
* the beginning of the page. We'll force a page
@@ -433,6 +442,7 @@
*/
idt = (struct desc_struct *)(page - 7*8);
__asm__ __volatile__("lidt %0": "=m" (idt_descr));
+
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov