linux-mips
[Top] [All Lists]

Re: System call select on R4600

To: linux-mips@linux-mips.org
Subject: Re: System call select on R4600
From: "Macleod" <macleod@mail2000.com.tw>
Date: Wed, 25 Aug 2004 10:18:04 +0800 (CST)
Original-recipient: rfc822;linux-mips@linux-mips.org
Reply-to: macleod@mail2000.com.tw
Sender: linux-mips-bounce@linux-mips.org
 After trace system, found this problem is from scall_o32.S
 line 161 in 2.4.26 kernel.

 bltz t0, bad_stack   # -> sp is bad

 If stack address larger than 0x7fffffff, branch will take, 
 and that's why I got "-4142" errno on select system call
 even parameters in stack are correct. I tried to remove this
 line and seems "select" works fine.


-----Original message-----
From:Ralf Baechle <ralf@linux-mips.org>
To:Macleod <macleod@mail2000.com.tw>
Cc:linux-mips@linux-mips.org
Date:Sun, 22 Aug 2004 14:14:36 +0200
Subject:Re: System call select on R4600

On Sun, Aug 22, 2004 at 11:54:10AM +0800, Macleod wrote:

>  My problem is "select" system call always return -1
>  and errno is -4142, but sys_select has never been called.
>  Think, it has some problem on handling system call. 
>  Because if I change SYS(sys_select, 5) to 4 arguments,
>  sys_select will be executed. 
>  Thanks!

This is a bug which was fixed a while ago.  I assume your application
is picking up a bad definition from an old kernel header package or so.
Still doing syscalls directly is a fragily; better avoid and use your
libc's select(3).

  Ralf


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