login
Header Space

 
 

Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: David Woodhouse <dwmw2@...>
Cc: Linus Torvalds <torvalds@...>, Roland McGrath <roland@...>, Andrew Morton <akpm@...>, Martin Schwidefsky <schwidefsky@...>, <linux-s390@...>, <tony.luck@...>, <linux-ia64@...>, <linux-arch@...>, <linux-kernel@...>
Date: Wednesday, April 9, 2008 - 7:39 am

On 04/09, David Woodhouse wrote:

Yes sure.


Why do you think so?

Please look at the "patch" below,

	--- arch/x86/kernel/signal_32.c	2008-02-15 16:58:38.000000000 +0300
	+++ -	2008-04-09 15:16:05.393510662 +0400
	@@ -526,10 +526,14 @@ handle_signal(unsigned long sig, siginfo
	 {
		int ret;
	 
	+	oldset = &current->blocked;
	+
		/* Are we from a system call? */
		if (regs->orig_ax >= 0) {
			/* If so, check system call restarting.. */
			switch (regs->ax) {
	+			case -ERESTART_XXX:
	+				oldset = &current->saved_sigmask;
				case -ERESTART_RESTARTBLOCK:
				case -ERESTARTNOHAND:
					regs->ax = -EINTR;

We also need a similar change in do_signal(). Now,

	--- fs/select.c	2008-02-15 16:59:15.000000000 +0300
	+++ -	2008-04-09 15:19:29.015991911 +0400
	@@ -805,9 +805,8 @@ asmlinkage long sys_ppoll(struct pollfd 
			if (sigmask) {
				memcpy(&current->saved_sigmask, &sigsaved,
						sizeof(sigsaved));
	-			set_thread_flag(TIF_RESTORE_SIGMASK);
			}
	-		ret = -ERESTARTNOHAND;
	+		ret = -ERESTART_XXX;
		} else if (sigmask)
			sigprocmask(SIG_SETMASK, &sigsaved, NULL);

Perhaps I missed something else, though. Not that I really think it worth
changing, but I'll try to make a proof of concept patch on Weekend, on top
of Roland's cleanups.

As I see it, the main disadvantage of ERESTART_ approach is that we need 2
new ERESTART_ codes, one for ERESTARTNOHAND, another for ERESTART_RESTARTBLOCK.
And yes, while I personally think this is "more clean", it is very subjective.

Oleg.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 1/4] set_restore_sigmask, Roland McGrath, (Fri Mar 28, 8:12 pm)
[PATCH 4/4] ia64 renumber TIF_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 8:14 pm)
[PATCH 3/4] s390 renumber TIF_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 8:14 pm)
Re: [PATCH 3/4] s390 renumber TIF_RESTORE_SIGMASK, Martin Schwidefsky, (Mon Mar 31, 3:53 am)
[PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Fri Mar 28, 8:13 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Linus Torvalds, (Fri Mar 28, 8:53 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Oleg Nesterov, (Tue Apr 8, 7:35 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, David Woodhouse, (Wed Apr 9, 7:16 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Oleg Nesterov, (Wed Apr 9, 7:39 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, David Woodhouse, (Wed Apr 9, 12:14 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Oleg Nesterov, (Wed Apr 9, 12:22 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, David Woodhouse, (Wed Apr 9, 2:40 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Petr Tesarik, (Wed Apr 9, 8:57 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Tue Apr 8, 3:51 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Linus Torvalds, (Tue Apr 8, 10:53 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Paul Mackerras, (Sun Mar 30, 6:53 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Fri Mar 28, 10:24 pm)
[PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 11:14 pm)
[PATCH 2/2] x86 TS_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 11:14 pm)
Re: [PATCH 2/2] x86 TS_RESTORE_SIGMASK, Ingo Molnar, (Mon Mar 31, 9:01 am)
Re: [PATCH 2/2] x86 TS_RESTORE_SIGMASK, Roland McGrath, (Mon Mar 31, 3:30 pm)
[PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 11:11 pm)
Re: [PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, David Woodhouse, (Wed Apr 9, 7:45 am)
Re: [PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, Russell King, (Thu Apr 10, 4:32 pm)
Re: [PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, David Woodhouse, (Fri Apr 11, 9:40 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Linus Torvalds, (Fri Mar 28, 10:52 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Fri Mar 28, 11:12 pm)
speck-geostationary