Re: [patch V2 26/50] signal: Get rid of resched_timer logic

From: Oleg Nesterov
Date: Thu Apr 18 2024 - 12:40:08 EST


On 04/11, Thomas Gleixner wrote:
>
> There is no reason for handing the *resched pointer argument through
> several functions just to check whether the signal is related to a self
> rearming posix timer.

Agreed, these changes looks good to me.

But,

> SI_TIMER is only used by the posix timer code and cannot be queued from
> user space.

Why? I think sigqueueinfo() can certainly use si_code = SI_TIMER, so

> @@ -1011,6 +1001,9 @@ static int __send_signal_locked(int sig,
>
> lockdep_assert_held(&t->sighand->siglock);
>
> + if (WARN_ON_ONCE(!is_si_special(info) && info->si_code == SI_TIMER))
> + return 0;

this can be easily triggered by userspace and thus looks wrong.

Oleg.