Re: [PATCH] x86: do_signal: simplify the TS_RESTORE_SIGMASK logic

From: Matt Fleming
Date: Wed Jul 13 2011 - 05:26:00 EST


On Sun, 10 Jul 2011 20:22:03 +0200
Oleg Nesterov <oleg@xxxxxxxxxx> wrote:

> 1. do_signal() looks at TS_RESTORE_SIGMASK and calculates the
> mask which should be stored in the signal frame, then it
> passes "oldset" to the callees, down to setup_rt_frame().
>
> This is ugly, setup_rt_frame() can do this itself and nobody
> else needs this sigset_t. Move this code into setup_rt_frame.
>
> 2. do_signal() also clears TS_RESTORE_SIGMASK if handle_signal()
> succeeds.
>
> We can move this to setup_rt_frame() as well, this avoids the
> unnecessary checks and makes the logic more clear.
>
> 3. use set_current_blocked() instead of sigprocmask(SIG_SETMASK),
> sigprocmask() should be avoided.

Could you please mention commit e6fa16ab "signal: sigprocmask() should
do retarget_shared_pending()", since it's not immediately obvious in
this changelog why sigprocmask() should be avoided.

> Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>

FWIW,

Reviewed-by: Matt Fleming <matt.fleming@xxxxxxxxxxxxxxx>

--
Matt Fleming, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/