[PATCH 2/4] set_restore_sigmask TIF_SIGPENDING

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Roland McGrath
Date: Friday, March 28, 2008 - 5:13 pm

Set TIF_SIGPENDING in set_restore_sigmask.  This lets arch code take
TIF_RESTORE_SIGMASK out of the set of bits that will be noticed on
return to user mode.  On some machines those bits are scarce, and we
can free this unneeded one up for other uses.

It is probably the case that TIF_SIGPENDING is always set anyway
everywhere set_restore_sigmask() is used.  But this is some cheap
paranoia in case there is an arcane case where it might not be.

Signed-off-by: Roland McGrath <roland@redhat.com>
---
 include/linux/thread_info.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
index d82c073..4a89477 100644
--- a/include/linux/thread_info.h
+++ b/include/linux/thread_info.h
@@ -85,11 +85,17 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
  * set_restore_sigmask() - make sure saved_sigmask processing gets done
  *
  * This sets TIF_RESTORE_SIGMASK and ensures that the arch signal code
- * will run before returning to user mode, to process the flag.
+ * will run before returning to user mode, to process the flag.  For
+ * all callers, TIF_SIGPENDING is already set or it's no harm to set
+ * it.  TIF_RESTORE_SIGMASK need not be in the set of bits that the
+ * arch code will notice on return to user mode, in case those bits
+ * are scarce.  We set TIF_SIGPENDING here to ensure that the arch
+ * signal code always gets run when TIF_RESTORE_SIGMASK is set.
  */
 static inline void set_restore_sigmask(void)
 {
 	set_thread_flag(TIF_RESTORE_SIGMASK);
+	set_thread_flag(TIF_SIGPENDING);
 }
 #endif	/* TIF_RESTORE_SIGMASK */
 
--
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, 5:12 pm)
[PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Fri Mar 28, 5:13 pm)
[PATCH 3/4] s390 renumber TIF_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 5:14 pm)
[PATCH 4/4] ia64 renumber TIF_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 5:14 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Linus Torvalds, (Fri Mar 28, 5:53 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Fri Mar 28, 7:24 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Linus Torvalds, (Fri Mar 28, 7:52 pm)
[PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 8:11 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Fri Mar 28, 8:12 pm)
[PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 8:14 pm)
[PATCH 2/2] x86 TS_RESTORE_SIGMASK, Roland McGrath, (Fri Mar 28, 8:14 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Paul Mackerras, (Sun Mar 30, 3:53 am)
Re: [PATCH 3/4] s390 renumber TIF_RESTORE_SIGMASK, Martin Schwidefsky, (Mon Mar 31, 12:53 am)
Re: [PATCH 2/2] x86 TS_RESTORE_SIGMASK, Ingo Molnar, (Mon Mar 31, 6:01 am)
Re: [PATCH 2/2] x86 TS_RESTORE_SIGMASK, Roland McGrath, (Mon Mar 31, 12:30 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Oleg Nesterov, (Tue Apr 8, 4:35 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Linus Torvalds, (Tue Apr 8, 7:53 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Roland McGrath, (Tue Apr 8, 12:51 pm)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, David Woodhouse, (Wed Apr 9, 4:16 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Oleg Nesterov, (Wed Apr 9, 4:39 am)
Re: [PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, David Woodhouse, (Wed Apr 9, 4:45 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Petr Tesarik, (Wed Apr 9, 5:57 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, David Woodhouse, (Wed Apr 9, 9:14 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, Oleg Nesterov, (Wed Apr 9, 9:22 am)
Re: [PATCH 2/4] set_restore_sigmask TIF_SIGPENDING, David Woodhouse, (Wed Apr 9, 11:40 am)
Re: [PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, Russell King, (Thu Apr 10, 1:32 pm)
Re: [PATCH 1/2] HAVE_SET_RESTORE_SIGMASK, David Woodhouse, (Fri Apr 11, 6:40 am)