concerning endiannes checking in sys32_rt_sigtimedwait:
just let me note that we have get_sigset and put_sigset that are used in
sys32_rt_[sigaction, sigprocmask, sigpending ...] in signal32.c.
Thise functions does not use endian check. Don't know if we can use
get_sigset in sys32_rt_sigtimedwait.
But I have another question about sys32_rt_sigtimedwait:
We can see the comment about "brainfarting competition". Based on this
comment only part of sigset is copied from user space to kernel. Why
signals greater than 64 should not be handled?
If we look at sys32_rt_sigtimedwait in ppc64/kernel/signal32.c or
sparc64/sys_sparc32.c we can see that full sigset (compat_sigset_t) is
copied from user while in mips compat_old_sigset is copied. Why it is
different in MIPS?