Re: 2.4.x oops with X

From: Andreas Hartmann
Date: Sun Feb 06 2005 - 01:39:35 EST


Andreas Hartmann wrote:
> Andreas Hartmann wrote:
> [...]
>> But now, the question is:
>> Why does X crash running kernel 2.4.x with glibc 2.3.4 and not with kernel
>> 2.6.10? Why does X run fine using kernel 2.4 and 2.6 with glibc 2.3.3?
>>
>> ----------------------------------------------
>> | glibc
>> | 2.3.3 2.3.4
>> ------|-------------------------------------
>> kernel|
>> 2.4 | X ok X segfaults
>> 2.6 | X ok X ok
>
>
> Meanwhile, I could find where X crashes using glibc 2.3.4 with kernel 2.4.
> It's this piece of code in linux_vm86.c:267
>
> static int
> vm86_rep(struct vm86_struct *ptr)
> {
> int __res;
>
> #ifdef __PIC__
> /* When compiling with -fPIC, we can't use asm constraint "b" because
> %ebx is already taken by gcc. */
> __asm__ __volatile__("pushl %%ebx\n\t"
> "movl %2,%%ebx\n\t"
> "movl %1,%%eax\n\t"
> "int $0x80\n\t"
> "popl %%ebx"
> :"=a" (__res)
> :"n" ((int)113), "r" ((struct vm86_struct *)ptr));
> #else
> __asm__ __volatile__("int $0x80\n\t"
> :"=a" (__res):"a" ((int)113),
> "b" ((struct vm86_struct *)ptr));
> #endif
>
> if (__res < 0) {
> errno = -__res;
> __res = -1;
> }
> else errno = 0;
> return __res;
> }
>
>
> The function ExecX86int10 (vbe.c) calls do_vm86 (linux_vm86.c), which
> calls vm86_rep (linux_vm86.c).
>
>
> I don't understand, why this piece of assembler code works fine with glibc
> 2.3.3, but not with glibc 2.3.4, running kernel 2.4.x. It works fine again
> with kernel 2.6.

Solution for this problem can be found meanwhile at
https://bugs.freedesktop.org/show_bug.cgi?id=2431


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