diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-28 12:45:57 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-28 12:45:57 -0400 |
| commit | e945e849e18006c131fe59252ab920c6b5f7959c (patch) | |
| tree | a86b1a299c5cebed14889fb638cb6808417b5f4a /arch/sparc64/kernel/signal.c | |
| parent | 77a50df2b14c8d3ee3c58c21c4a0e0157570df09 (diff) | |
| parent | 194f1a68b93e959ede6ec363db4714e630bdbb6a (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc: video drivers: add facility level
sparc: tcx.c make tcx_init and tcx_exit static
sparc: ffb.c make ffb_init and ffb_exit static
sparc: cg14.c make cg14_init and cg15_exit static
sparc: bw2.c fix bw2_exit
sparc64: Fix accidental syscall restart on child return from clone/fork/vfork.
sparc64: Clean up handling of pt_regs trap type encoding.
sparc: Remove old style signal frame support.
sparc64: Kill bogus RT_ALIGNEDSZ macro from signal.c
sparc: sunzilog.c remove unused argument
sparc: fix drivers/video/tcx.c warning
sparc64: Kill unused local ISA bus layer.
input: Rewrite sparcspkr device probing.
sparc64: Do not ignore 'pmu' device ranges.
sparc64: Kill ISA_FLOPPY_WORKS code.
sparc64: Kill CONFIG_SPARC32_COMPAT
sparc64: Cleanups and corrections for arch/sparc64/Kconfig
sparc64: Fix wedged irq regression.
Diffstat (limited to 'arch/sparc64/kernel/signal.c')
| -rw-r--r-- | arch/sparc64/kernel/signal.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c index 77a3e8592cbc..f2d88d8f7a42 100644 --- a/arch/sparc64/kernel/signal.c +++ b/arch/sparc64/kernel/signal.c | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 8 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #ifdef CONFIG_SPARC32_COMPAT | 11 | #ifdef CONFIG_COMPAT |
| 12 | #include <linux/compat.h> /* for compat_old_sigset_t */ | 12 | #include <linux/compat.h> /* for compat_old_sigset_t */ |
| 13 | #endif | 13 | #endif |
| 14 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
| @@ -236,9 +236,6 @@ struct rt_signal_frame { | |||
| 236 | __siginfo_fpu_t fpu_state; | 236 | __siginfo_fpu_t fpu_state; |
| 237 | }; | 237 | }; |
| 238 | 238 | ||
| 239 | /* Align macros */ | ||
| 240 | #define RT_ALIGNEDSZ (((sizeof(struct rt_signal_frame) + 7) & (~7))) | ||
| 241 | |||
| 242 | static long _sigpause_common(old_sigset_t set) | 239 | static long _sigpause_common(old_sigset_t set) |
| 243 | { | 240 | { |
| 244 | set &= _BLOCKABLE; | 241 | set &= _BLOCKABLE; |
| @@ -400,7 +397,7 @@ setup_rt_frame(struct k_sigaction *ka, struct pt_regs *regs, | |||
| 400 | synchronize_user_stack(); | 397 | synchronize_user_stack(); |
| 401 | save_and_clear_fpu(); | 398 | save_and_clear_fpu(); |
| 402 | 399 | ||
| 403 | sigframe_size = RT_ALIGNEDSZ; | 400 | sigframe_size = sizeof(struct rt_signal_frame); |
| 404 | if (!(current_thread_info()->fpsaved[0] & FPRS_FEF)) | 401 | if (!(current_thread_info()->fpsaved[0] & FPRS_FEF)) |
| 405 | sigframe_size -= sizeof(__siginfo_fpu_t); | 402 | sigframe_size -= sizeof(__siginfo_fpu_t); |
| 406 | 403 | ||
| @@ -516,11 +513,10 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0) | |||
| 516 | struct k_sigaction ka; | 513 | struct k_sigaction ka; |
| 517 | sigset_t *oldset; | 514 | sigset_t *oldset; |
| 518 | siginfo_t info; | 515 | siginfo_t info; |
| 519 | int signr, tt; | 516 | int signr; |
| 520 | 517 | ||
| 521 | tt = regs->magic & 0x1ff; | 518 | if (pt_regs_is_syscall(regs)) { |
| 522 | if (tt == 0x110 || tt == 0x111 || tt == 0x16d) { | 519 | pt_regs_clear_trap_type(regs); |
| 523 | regs->magic &= ~0x1ff; | ||
| 524 | cookie.restart_syscall = 1; | 520 | cookie.restart_syscall = 1; |
| 525 | } else | 521 | } else |
| 526 | cookie.restart_syscall = 0; | 522 | cookie.restart_syscall = 0; |
| @@ -531,7 +527,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0) | |||
| 531 | else | 527 | else |
| 532 | oldset = ¤t->blocked; | 528 | oldset = ¤t->blocked; |
| 533 | 529 | ||
| 534 | #ifdef CONFIG_SPARC32_COMPAT | 530 | #ifdef CONFIG_COMPAT |
| 535 | if (test_thread_flag(TIF_32BIT)) { | 531 | if (test_thread_flag(TIF_32BIT)) { |
| 536 | extern void do_signal32(sigset_t *, struct pt_regs *, | 532 | extern void do_signal32(sigset_t *, struct pt_regs *, |
| 537 | struct signal_deliver_cookie *); | 533 | struct signal_deliver_cookie *); |
