Commit 7fd3f4cd authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds

[PATCH] uml: comment UML's signal handling

This adds a couple of comments so that people don't get confused into making
misguided fixes, and I don't get confused into applying them.
Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent d0fcfa7a
...@@ -80,6 +80,12 @@ void unblock_signals(void) ...@@ -80,6 +80,12 @@ void unblock_signals(void)
change_signals(SIG_UNBLOCK); change_signals(SIG_UNBLOCK);
} }
/* These are the asynchronous signals. SIGVTALRM and SIGARLM are handled
* together under SIGVTALRM_BIT. SIGPROF is excluded because we want to
* be able to profile all of UML, not just the non-critical sections. If
* profiling is not thread-safe, then that is not my problem. We can disable
* profiling when SMP is enabled in that case.
*/
#define SIGIO_BIT 0 #define SIGIO_BIT 0
#define SIGVTALRM_BIT 1 #define SIGVTALRM_BIT 1
...@@ -114,6 +120,11 @@ int set_signals(int enable) ...@@ -114,6 +120,11 @@ int set_signals(int enable)
sigaddset(&mask, SIGVTALRM); sigaddset(&mask, SIGVTALRM);
sigaddset(&mask, SIGALRM); sigaddset(&mask, SIGALRM);
} }
/* This is safe - sigprocmask is guaranteed to copy locally the
* value of new_set, do his work and then, at the end, write to
* old_set.
*/
if(sigprocmask(SIG_UNBLOCK, &mask, &mask) < 0) if(sigprocmask(SIG_UNBLOCK, &mask, &mask) < 0)
panic("Failed to enable signals"); panic("Failed to enable signals");
ret = enable_mask(&mask); ret = enable_mask(&mask);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment