2000-11-02 20:08:00

by George Anzinger

[permalink] [raw]
Subject: Possible cause of SegFaults

diff -urP -X patch.exclude linux-2.4.0-test9-kb-rts/arch/i386/kernel/traps.c linux/arch/i386/kernel/traps.c
--- linux-2.4.0-test9-kb-rts/arch/i386/kernel/traps.c Mon Oct 30 21:04:29 2000
+++ linux/arch/i386/kernel/traps.c Wed Nov 1 12:42:40 2000
@@ -1028,7 +1028,7 @@
set_trap_gate(11,&segment_not_present);
set_trap_gate(12,&stack_segment);
set_trap_gate(13,&general_protection);
- set_trap_gate(14,&page_fault);
+ set_intr_gate(14,&page_fault);
set_trap_gate(15,&spurious_interrupt_bug);
set_trap_gate(16,&coprocessor_error);
set_trap_gate(17,&alignment_check);
diff -urP -X patch.exclude linux-2.4.0-test9-kb-rts/arch/i386/mm/fault.c linux/arch/i386/mm/fault.c
--- linux-2.4.0-test9-kb-rts/arch/i386/mm/fault.c Mon Oct 30 21:04:29 2000
+++ linux/arch/i386/mm/fault.c Thu Nov 2 09:57:02 2000
@@ -130,7 +130,7 @@

/* get the address */
__asm__("movl %%cr2,%0":"=r" (address));
-
+ __sti();
tsk = current;
mm = tsk->mm;
info.si_code = SEGV_MAPERR;


Attachments:
segfault.patch (980.00 B)