Oops. Indeed. TASK_RUNNING isn't a bit at all, it's a lack of sleep.
Turning the logic the other way around:
	/* Ignore processes that are dead or stopped (except for SIGKILL) */
	mask = TASK_ZOMBIE | TASK_DEAD;
	if (sig != SIGKILL)
		mask != TASK_STOPPED;
and testing for !((p)->state & mask) should fix it. The mask ends up being 
the states that are _not_ good to send signals for ;)
		Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/