Re: 2.4.x oops with X

2005-02-05 Thread Andreas Hartmann
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 okX segfaults
>> 2.6  |   X okX 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: 2.4.x oops with X

2005-02-05 Thread Andreas Hartmann
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 okX segfaults
 2.6  |   X okX 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/