LTP testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux