From: eric.piel@tremplin-utc.net Few months ago, Corey Minyard corrected handling of incorrect values of signals. cf http://linux.bkbits.net:8080/linux-2.5/cset@1.1267.56.40?nav=index.html%7Csrc/%7Csrc/kernel%7Crelated/kernel/posix-timers.c Working on the High-Resolution Timers project, I noticed there is an error in good_sigevent() to catch the case when sigev_signo is 0. In this function, we want to return NULL when sigev_signo is 0. The one liner attached (used for a long time in the HRT patch) should do the trick. Also, don't do `if ((unsigned)(foo > N))' when trying to catch negative values of an integer. --- kernel/posix-timers.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) diff -puN kernel/posix-timers.c~SIGRTMAX-fix kernel/posix-timers.c --- 25/kernel/posix-timers.c~SIGRTMAX-fix 2004-01-24 15:44:23.000000000 -0800 +++ 25-akpm/kernel/posix-timers.c 2004-01-24 15:49:54.000000000 -0800 @@ -344,8 +344,7 @@ static inline struct task_struct * good_ return NULL; if ((event->sigev_notify & ~SIGEV_NONE & MIPS_SIGEV) && - event->sigev_signo && - ((unsigned) (event->sigev_signo > SIGRTMAX))) + (event->sigev_signo <= 0 || event->sigev_signo > SIGRTMAX)) return NULL; return rtn; _