lkml.org 
[lkml]   [1996]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectException 15
Well, wouldn't you know that I'd finally get hit by the spurious exception 15
bug today myself. Here's a new patch that ignores only exception 15.

Leonard


--- linux/arch/i386/kernel/traps.c- Sat Oct 5 04:25:51 1996
+++ linux/arch/i386/kernel/traps.c Sun Nov 3 11:19:43 1996
@@ -81,6 +81,7 @@
asmlinkage void coprocessor_error(void);
asmlinkage void reserved(void);
asmlinkage void alignment_check(void);
+asmlinkage void spurious_interrupt_bug(void);

int kstack_depth_to_print = 24;

@@ -173,8 +174,8 @@
DO_ERROR(10, SIGSEGV, "invalid TSS", invalid_TSS, current)
DO_ERROR(11, SIGBUS, "segment not present", segment_not_present, current)
DO_ERROR(12, SIGBUS, "stack segment", stack_segment, current)
-DO_ERROR(15, SIGSEGV, "reserved", reserved, current)
DO_ERROR(17, SIGSEGV, "alignment check", alignment_check, current)
+DO_ERROR(18, SIGSEGV, "reserved", reserved, current)

asmlinkage void do_general_protection(struct pt_regs * regs, long error_code)
{
@@ -258,6 +259,12 @@
math_error();
}

+asmlinkage void do_spurious_interrupt_bug(struct pt_regs * regs,
+ long error_code)
+{
+ printk("Ignoring P6 Local APIC Spurious Interrupt Bug...\n");
+}
+
/*
* 'math_state_restore()' saves the current math information in the
* old math state array, and gets the new ones from the current task
@@ -343,7 +350,7 @@
set_trap_gate(12,&stack_segment);
set_trap_gate(13,&general_protection);
set_trap_gate(14,&page_fault);
- set_trap_gate(15,&reserved);
+ set_trap_gate(15,&spurious_interrupt_bug);
set_trap_gate(16,&coprocessor_error);
set_trap_gate(17,&alignment_check);
for (i=18;i<48;i++)
--- linux/arch/i386/kernel/entry.S- Wed Jul 17 02:33:25 1996
+++ linux/arch/i386/kernel/entry.S Sun Nov 3 11:17:52 1996
@@ -503,6 +503,11 @@
pushl $ SYMBOL_NAME(do_page_fault)
jmp error_code

+ENTRY(spurious_interrupt_bug)
+ pushl $0
+ pushl $ SYMBOL_NAME(do_spurious_interrupt_bug)
+ jmp error_code
+
.data
ENTRY(sys_call_table)
.long SYMBOL_NAME(sys_setup) /* 0 */
\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.074 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site