2006-01-15 20:48:07

by Jeff Dike

[permalink] [raw]
Subject: [PATCH 10/11] UML - Use setjmp/longjmp instead of sigsetjmp/siglongjmp

Now that we are doing soft interrupts, there's no point in using
sigsetjmp and siglongjmp. Using setjmp and longjmp saves a
sigprocmask on every jump.

Signed-off-by: Jeff Dike <[email protected]>

Index: linux-2.6.15-mm/arch/um/include/longjmp.h
===================================================================
--- linux-2.6.15-mm.orig/arch/um/include/longjmp.h 2006-01-09 11:44:53.000000000 -0500
+++ linux-2.6.15-mm/arch/um/include/longjmp.h 2006-01-09 11:48:47.000000000 -0500
@@ -5,13 +5,13 @@
#include "os.h"

#define UML_SIGLONGJMP(buf, val) do { \
- siglongjmp(*buf, val); \
+ longjmp(*buf, val); \
} while(0)

#define UML_SIGSETJMP(buf, enable) ({ \
int n; \
enable = get_signals(); \
- n = sigsetjmp(*buf, 1); \
+ n = setjmp(*buf); \
if(n != 0) \
set_signals(enable); \
n; })