Messages in this thread | | | Date | Mon, 10 Jun 2019 18:22:45 +0200 | From | Oleg Nesterov <> | Subject | Re: [RFC PATCH 1/5] signal: Teach sigsuspend to use set_user_sigmask |
| |
On 06/07, Eric W. Biederman wrote: > > +static int set_sigmask(sigset_t *kmask) > +{ > + set_restore_sigmask(); > + current->saved_sigmask = current->blocked; > + set_current_blocked(kmask); > + > + return 0; > +}
I was going to do the same change except my version returns void ;)
So ACK.
As for 2-5, sorry I can't read them today, will do tomorrow.
But at first glance... yes, we can remove TIF_RESTORE_SIGMASK.
As for "remove saved_sigmask" I have some concerns... At least this means a user-visible change iiuc. Say, pselect unblocks a fatal signal. Say, SIGINT without a handler. Suppose SIGINT comes after set_sigmask().
Before this change the process will be killed.
After this change it will be killed or not. It won't be killed if do_select() finds an already ready fd without blocking, or it finds a ready fd right after SIGINT interrupts poll_schedule_timeout().
And _to me_ the new behaviour makes more sense. But when it comes to user-visible changes you can never know if it breaks something or not.
Oleg.
| |