> SI_USER means that the target can trust the values of si_pid/si_uid > in siginfo. Bah, what an annoying nonsense. I see that this can be used to emulate stuff like SI_TIMER and SI_ASYNCIO. But I very much doubt the value of e.g., emulating SI_DETHREAD. Maybe I'm missing something very obvious. In any case, thanks for keeping me honest: So wouldn't be better of just writing this as? if ((task_pid(current) != pid || type > PIDTYPE_TGID) && (kinfo.si_code >= 0 || kinfo.si_code == SI_TKILL)) goto err; So that we don't have to repeat the same exercise if we extend this to anything above PIDTYPE_PGID?