[PATCH] uml: Move signal handlers to arch code
Have most signals go through an arch-provided handler which recovers the sigcontext and then calls a generic handler. This replaces the ARCH_GET_SIGCONTEXT macro, which was somewhat fragile. On x86_64, recovering %rdx (which holds the sigcontext pointer) must be the first thing that happens. sig_handler duly invokes that first, but there is no guarantee that I can see that instructions won't be reordered such that %rdx is used before that. Having the arch provide the handler seems much more robust. Some signals in some parts of UML require their own handlers - these places don't call set_handler any more. They call sigaction or signal themselves. Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
19bdf0409f
commit
4b84c69b5f
@@ -40,8 +40,8 @@ void disable_timer(void)
|
||||
printk("disnable_timer - setitimer failed, errno = %d\n",
|
||||
errno);
|
||||
/* If there are signals already queued, after unblocking ignore them */
|
||||
set_handler(SIGALRM, SIG_IGN, 0, -1);
|
||||
set_handler(SIGVTALRM, SIG_IGN, 0, -1);
|
||||
signal(SIGALRM, SIG_IGN);
|
||||
signal(SIGVTALRM, SIG_IGN);
|
||||
}
|
||||
|
||||
void switch_timers(int to_real)
|
||||
|
Reference in New Issue
Block a user