diff options
author | Franck Bui-Huu <fbuihuu@gmail.com> | 2007-02-05 09:24:27 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-10 17:38:48 -0500 |
commit | f90080a059fc19444b3a63affd1f4ecece62c11c (patch) | |
tree | 446635241c5685bc525c89532967b7adf4c59589 | |
parent | 6bfe96616062acb75c2460f01acc79236a8ba0e8 (diff) |
[MIPS] signal: do not use save_static_function() anymore
This macro was used to save static registers before calling
sys_sigsuspend() and sys_sigreturn().
For the sys_sigreturn() case, there's no point to save them
since they have been already saved by setup_sigcontext()
before calling the signal handler.
For the sys_sigsuspend() case, I don't see any reasons...
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/kernel/signal.c | 16 | ||||
-rw-r--r-- | arch/mips/kernel/signal32.c | 16 | ||||
-rw-r--r-- | arch/mips/kernel/signal_n32.c | 8 |
3 files changed, 10 insertions, 30 deletions
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index a5adab1c94c3..b3f8f0df1b68 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c | |||
@@ -201,9 +201,7 @@ int install_sigtramp(unsigned int __user *tramp, unsigned int syscall) | |||
201 | */ | 201 | */ |
202 | 202 | ||
203 | #ifdef CONFIG_TRAD_SIGNALS | 203 | #ifdef CONFIG_TRAD_SIGNALS |
204 | save_static_function(sys_sigsuspend); | 204 | asmlinkage int sys_sigsuspend(nabi_no_regargs struct pt_regs regs) |
205 | __attribute_used__ noinline static int | ||
206 | _sys_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
207 | { | 205 | { |
208 | sigset_t newset; | 206 | sigset_t newset; |
209 | sigset_t __user *uset; | 207 | sigset_t __user *uset; |
@@ -226,9 +224,7 @@ _sys_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
226 | } | 224 | } |
227 | #endif | 225 | #endif |
228 | 226 | ||
229 | save_static_function(sys_rt_sigsuspend); | 227 | asmlinkage int sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) |
230 | __attribute_used__ noinline static int | ||
231 | _sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
232 | { | 228 | { |
233 | sigset_t newset; | 229 | sigset_t newset; |
234 | sigset_t __user *unewset; | 230 | sigset_t __user *unewset; |
@@ -307,9 +303,7 @@ asmlinkage int sys_sigaltstack(nabi_no_regargs struct pt_regs regs) | |||
307 | } | 303 | } |
308 | 304 | ||
309 | #ifdef CONFIG_TRAD_SIGNALS | 305 | #ifdef CONFIG_TRAD_SIGNALS |
310 | save_static_function(sys_sigreturn); | 306 | asmlinkage void sys_sigreturn(nabi_no_regargs struct pt_regs regs) |
311 | __attribute_used__ noinline static void | ||
312 | _sys_sigreturn(nabi_no_regargs struct pt_regs regs) | ||
313 | { | 307 | { |
314 | struct sigframe __user *frame; | 308 | struct sigframe __user *frame; |
315 | sigset_t blocked; | 309 | sigset_t blocked; |
@@ -344,9 +338,7 @@ badframe: | |||
344 | } | 338 | } |
345 | #endif /* CONFIG_TRAD_SIGNALS */ | 339 | #endif /* CONFIG_TRAD_SIGNALS */ |
346 | 340 | ||
347 | save_static_function(sys_rt_sigreturn); | 341 | asmlinkage void sys_rt_sigreturn(nabi_no_regargs struct pt_regs regs) |
348 | __attribute_used__ noinline static void | ||
349 | _sys_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | ||
350 | { | 342 | { |
351 | struct rt_sigframe __user *frame; | 343 | struct rt_sigframe __user *frame; |
352 | sigset_t set; | 344 | sigset_t set; |
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index 0994d6e1d691..183fc7e55f34 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -308,9 +308,7 @@ static inline int get_sigset(sigset_t *kbuf, const compat_sigset_t __user *ubuf) | |||
308 | * Atomically swap in the new signal mask, and wait for a signal. | 308 | * Atomically swap in the new signal mask, and wait for a signal. |
309 | */ | 309 | */ |
310 | 310 | ||
311 | save_static_function(sys32_sigsuspend); | 311 | asmlinkage int sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) |
312 | __attribute_used__ noinline static int | ||
313 | _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
314 | { | 312 | { |
315 | compat_sigset_t __user *uset; | 313 | compat_sigset_t __user *uset; |
316 | sigset_t newset; | 314 | sigset_t newset; |
@@ -332,9 +330,7 @@ _sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
332 | return -ERESTARTNOHAND; | 330 | return -ERESTARTNOHAND; |
333 | } | 331 | } |
334 | 332 | ||
335 | save_static_function(sys32_rt_sigsuspend); | 333 | asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) |
336 | __attribute_used__ noinline static int | ||
337 | _sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
338 | { | 334 | { |
339 | compat_sigset_t __user *uset; | 335 | compat_sigset_t __user *uset; |
340 | sigset_t newset; | 336 | sigset_t newset; |
@@ -495,9 +491,7 @@ int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from) | |||
495 | return err; | 491 | return err; |
496 | } | 492 | } |
497 | 493 | ||
498 | save_static_function(sys32_sigreturn); | 494 | asmlinkage void sys32_sigreturn(nabi_no_regargs struct pt_regs regs) |
499 | __attribute_used__ noinline static void | ||
500 | _sys32_sigreturn(nabi_no_regargs struct pt_regs regs) | ||
501 | { | 495 | { |
502 | struct sigframe __user *frame; | 496 | struct sigframe __user *frame; |
503 | sigset_t blocked; | 497 | sigset_t blocked; |
@@ -531,9 +525,7 @@ badframe: | |||
531 | force_sig(SIGSEGV, current); | 525 | force_sig(SIGSEGV, current); |
532 | } | 526 | } |
533 | 527 | ||
534 | save_static_function(sys32_rt_sigreturn); | 528 | asmlinkage void sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) |
535 | __attribute_used__ noinline static void | ||
536 | _sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | ||
537 | { | 529 | { |
538 | struct rt_sigframe32 __user *frame; | 530 | struct rt_sigframe32 __user *frame; |
539 | mm_segment_t old_fs; | 531 | mm_segment_t old_fs; |
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c index 1d4f39cd0386..57456e6a0c62 100644 --- a/arch/mips/kernel/signal_n32.c +++ b/arch/mips/kernel/signal_n32.c | |||
@@ -87,9 +87,7 @@ struct rt_sigframe_n32 { | |||
87 | 87 | ||
88 | extern void sigset_from_compat (sigset_t *set, compat_sigset_t *compat); | 88 | extern void sigset_from_compat (sigset_t *set, compat_sigset_t *compat); |
89 | 89 | ||
90 | save_static_function(sysn32_rt_sigsuspend); | 90 | asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) |
91 | __attribute_used__ noinline static int | ||
92 | _sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
93 | { | 91 | { |
94 | compat_sigset_t __user *unewset; | 92 | compat_sigset_t __user *unewset; |
95 | compat_sigset_t uset; | 93 | compat_sigset_t uset; |
@@ -119,9 +117,7 @@ _sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
119 | return -ERESTARTNOHAND; | 117 | return -ERESTARTNOHAND; |
120 | } | 118 | } |
121 | 119 | ||
122 | save_static_function(sysn32_rt_sigreturn); | 120 | asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) |
123 | __attribute_used__ noinline static void | ||
124 | _sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | ||
125 | { | 121 | { |
126 | struct rt_sigframe_n32 __user *frame; | 122 | struct rt_sigframe_n32 __user *frame; |
127 | sigset_t set; | 123 | sigset_t set; |