linux-mips
[Top] [All Lists]

LTP testing

To: Ralf Baechle <ralf@oss.sgi.com>, "linux-mips@oss.sgi.com" <linux-mips@oss.sgi.com>
Subject: LTP testing
From: Carsten Langgaard <carstenl@mips.com>
Date: Tue, 25 Jun 2002 15:21:58 +0200
Sender: owner-linux-mips@oss.sgi.com
The next LTP failure line is:
pipe05      1  BROK  :  Unexpected signal 11 received.

For this one I haven't got a fix, because the failure is due to the way
the pipe syscall is implemented for MIPS (so we need a fix in both the
kernel and glibc).

The glibc code look like this
SYSCALL__ (pipe, 1)
        /* Plop in the two descriptors.  */
        sw v0, 0(a0)
        sw v1, 4(a0)

        /* Go out with a clean status.  */
        move v0, zero
        j ra
        .end __pipe

The problem is that the code is called with $a0 = 0. So the 'sw v0,
0(a0)' after the syscall generates a segmentation fault.
Why are the pipe syscall implemented this way, where we return the two
descriptors in v0 and v1 ?
Why doesn't the kernel do these stores (this way we can do an access
check, like i386 does) ?

/Carsten


--
_    _ ____  ___   Carsten Langgaard   Mailto:carstenl@mips.com
|\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
| \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
  TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
                   Denmark             http://www.mips.com




<Prev in Thread] Current Thread [Next in Thread>