Messages in this thread Patch in this message | | | Date | Wed, 17 Feb 1999 16:18:31 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: [PATCH] Re: Unknown interrupt code |
| |
On Tue, 9 Feb 1999, Philipp Rumpf wrote:
>On Tue, Feb 09, 1999 at 10:39:56AM +0000, Philipp Rumpf wrote: >> This one would work better IMO. > >Argh. I did not set up %ds / %es. The problem with the code in
I did not know why %ds %es has to be changed across userspace/kernel. Can somebody tell two words to me to speed up my learning (Intel pdf specs are quite long ;).
>2.2.1 is we do not setup the stack correctly. This code is not >nice either, it dies without reenabling interrupts, which means >we cannot use SysRq, the panic reboot won't work aso.
the for(;;) sucks if you was under X (as the most of userbase that may want to report us a printk instead of a lockup ;). I think it's better to do _only_ this:
patch against 2.2.2-pre4:
Index: irq.c =================================================================== RCS file: /var/cvs/linux/arch/i386/kernel/irq.c,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 irq.c --- irq.c 1999/01/23 16:25:26 1.1.1.2 +++ linux/arch/i386/kernel/irq.c 1999/02/17 14:50:39 @@ -999,8 +999,7 @@ void strange_interrupt(int irqnum) { - printk("Unexpected interrupt %d\n", irqnum & 255); - for (;;); + printk("Unexpected interrupt %d\n", irqnum); } extern int common_unexpected; @@ -1013,7 +1012,7 @@ jumpto -= (unsigned long)(code+10); code[0] = 0x68; /* pushl */ - *(int *)(code+1) = i - 512; + *(int *)(code+1) = i; code[5] = 0xe9; /* jmp */ *(int *)(code+6) = jumpto; Andrea Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |