diff options
author | Vineet Gupta <Vineet.Gupta1@synopsys.com> | 2015-02-14 15:25:43 +0530 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-02-16 06:24:29 +0100 |
commit | e6e1caf5a04f735fc301df00538a04719ae4a267 (patch) | |
tree | aaf61d7b5c3ae64e627029e27b32ff48a6b12727 /libc/sysdeps/linux/arc/sigaction.c | |
parent | 7a65ad5399609ba715df2eaf4432db333ec0bf01 (diff) |
ARC: sigaction: fold default sigrestorer into "C"
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'libc/sysdeps/linux/arc/sigaction.c')
-rw-r--r-- | libc/sysdeps/linux/arc/sigaction.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/arc/sigaction.c b/libc/sysdeps/linux/arc/sigaction.c index a42044324..4a4c9e2d0 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; |