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@xxxxxxxxxxxxxx> To:Macleod <macleod@xxxxxxxxxxxxxxx> Cc:linux-mips@xxxxxxxxxxxxxx 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