summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arc/sigaction.c
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2015-02-14 15:25:43 +0530
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2015-02-16 21:52:13 +0100
commit65bc357213f1c08e339757923740f5d68212cf76 (patch)
tree32cf153ea1fb1843987041386a735c3bdf985807 /libc/sysdeps/linux/arc/sigaction.c
parent90b115c036d68c4c581ae974cdbf5352ad7daa84 (diff)
ARC: sigaction: fold default sigrestorer into "C"
Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc/sysdeps/linux/arc/sigaction.c')
-rw-r--r--libc/sysdeps/linux/arc/sigaction.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/arc/sigaction.c b/libc/sysdeps/linux/arc/sigaction.c
index a34c7cf4c..96c9983b1 100644
--- a/libc/sysdeps/linux/arc/sigaction.c
+++ b/libc/sysdeps/linux/arc/sigaction.c
@@ -10,8 +10,13 @@
#include <sys/syscall.h>
#include <bits/kernel_sigaction.h>
-extern void __default_rt_sa_restorer(void);
-//libc_hidden_proto(__default_rt_sa_restorer);
+/*
+ * Default sigretrun stub if user doesn't specify SA_RESTORER
+ */
+static void __default_rt_sa_restorer(void)
+{
+ INTERNAL_SYSCALL_NCS(__NR_rt_sigreturn, , 0);
+}
#define SA_RESTORER 0x04000000
@@ -25,11 +30,6 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
/*
* SA_RESTORER is only relevant for act != NULL case
* (!act means caller only wants to know @oact)
- *
- * For the normal/default cases (user not providing SA_RESTORER) use
- * a real sigreturn stub to avoid kernel synthesizing one on user stack
- * at runtime, which needs PTE permissions update (hence TLB entry
- * update) and costly cache line flushes for code modification
*/
if (act && !(act->sa_flags & SA_RESTORER)) {
kact.sa_restorer = __default_rt_sa_restorer;