Re: [OOPS] repeatable 2.4.8-ac7, 2.4.7-ac6 just run xdos

From: Andi Kleen (ak@suse.de)
Date: Wed Aug 22 2001 - 06:16:16 EST


Brian Gerst <bgerst@didntduck.org> writes:

> >
> > CPU: 0
> > EIP: 0010:[<c0180a18>]
> > Using defaults from ksymoops -t elf32-i386 -a i386
> > EFLAGS: 00010002
> > eax: 00001000 ebx: c4562368 ecx: 00000000 edx: 00000001
> > esi: c4562368 edi: c4a954d4 ebp: 00000001 esp: c6887d88
> > ds: 008 es: 0000 ss: 0018
> ^^^^
> Here is your problem. %es is set to the null segment. I had my
> suspicions about the segment reload optimisation in the -ac kernels, and
> this proves it. Try backing out the changes to arch/i386/kernel/entry.S
> and include/asm-i386/hw_irq.h and see if that fixes the problem.

This patch should fix the problem. One assumption coded into the reload
optimization is violated by vm86 mode. Please test.

--- linux-2.4.8-ac7-work/include/asm-i386/hw_irq.h-SEG2 Mon Aug 20 02:54:53 2001
+++ linux-2.4.8-ac7-work/include/asm-i386/hw_irq.h Wed Aug 22 13:02:16 2001
@@ -114,8 +114,10 @@
         "cmpl %eax,7*4(%esp)\n\t" \
         "je 1f\n\t" \
         "movl %eax,%ds\n\t" \
+ "1: cmpl %eax,8*4(%esp)\n\t" \
+ "je 2f\n\t" \
         "movl %eax,%es\n\t" \
- "1:\n\t"
+ "2:\n\t"
 
 #define IRQ_NAME2(nr) nr##_interrupt(void)
 #define IRQ_NAME(nr) IRQ_NAME2(IRQ##nr)

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 23 2001 - 21:00:48 EST