diff options
Diffstat (limited to 'arch/mips/kernel/signal_n32.c')
-rw-r--r-- | arch/mips/kernel/signal_n32.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c index b28646b3ceae..57456e6a0c62 100644 --- a/arch/mips/kernel/signal_n32.c +++ b/arch/mips/kernel/signal_n32.c | |||
@@ -47,8 +47,6 @@ | |||
47 | #define __NR_N32_rt_sigreturn 6211 | 47 | #define __NR_N32_rt_sigreturn 6211 |
48 | #define __NR_N32_restart_syscall 6214 | 48 | #define __NR_N32_restart_syscall 6214 |
49 | 49 | ||
50 | #define DEBUG_SIG 0 | ||
51 | |||
52 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) | 50 | #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) |
53 | 51 | ||
54 | /* IRIX compatible stack_t */ | 52 | /* IRIX compatible stack_t */ |
@@ -66,25 +64,30 @@ struct ucontextn32 { | |||
66 | sigset_t uc_sigmask; /* mask last for extensibility */ | 64 | sigset_t uc_sigmask; /* mask last for extensibility */ |
67 | }; | 65 | }; |
68 | 66 | ||
67 | #if ICACHE_REFILLS_WORKAROUND_WAR == 0 | ||
68 | |||
69 | struct rt_sigframe_n32 { | 69 | struct rt_sigframe_n32 { |
70 | u32 rs_ass[4]; /* argument save space for o32 */ | 70 | u32 rs_ass[4]; /* argument save space for o32 */ |
71 | #if ICACHE_REFILLS_WORKAROUND_WAR | ||
72 | u32 rs_pad[2]; | ||
73 | #else | ||
74 | u32 rs_code[2]; /* signal trampoline */ | 71 | u32 rs_code[2]; /* signal trampoline */ |
75 | #endif | ||
76 | struct siginfo rs_info; | 72 | struct siginfo rs_info; |
77 | struct ucontextn32 rs_uc; | 73 | struct ucontextn32 rs_uc; |
78 | #if ICACHE_REFILLS_WORKAROUND_WAR | 74 | }; |
75 | |||
76 | #else /* ICACHE_REFILLS_WORKAROUND_WAR */ | ||
77 | |||
78 | struct rt_sigframe_n32 { | ||
79 | u32 rs_ass[4]; /* argument save space for o32 */ | ||
80 | u32 rs_pad[2]; | ||
81 | struct siginfo rs_info; | ||
82 | struct ucontextn32 rs_uc; | ||
79 | u32 rs_code[8] ____cacheline_aligned; /* signal trampoline */ | 83 | u32 rs_code[8] ____cacheline_aligned; /* signal trampoline */ |
80 | #endif | ||
81 | }; | 84 | }; |
82 | 85 | ||
86 | #endif /* !ICACHE_REFILLS_WORKAROUND_WAR */ | ||
87 | |||
83 | 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); |
84 | 89 | ||
85 | save_static_function(sysn32_rt_sigsuspend); | 90 | asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) |
86 | __attribute_used__ noinline static int | ||
87 | _sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | ||
88 | { | 91 | { |
89 | compat_sigset_t __user *unewset; | 92 | compat_sigset_t __user *unewset; |
90 | compat_sigset_t uset; | 93 | compat_sigset_t uset; |
@@ -114,9 +117,7 @@ _sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
114 | return -ERESTARTNOHAND; | 117 | return -ERESTARTNOHAND; |
115 | } | 118 | } |
116 | 119 | ||
117 | save_static_function(sysn32_rt_sigreturn); | 120 | asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) |
118 | __attribute_used__ noinline static void | ||
119 | _sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) | ||
120 | { | 121 | { |
121 | struct rt_sigframe_n32 __user *frame; | 122 | struct rt_sigframe_n32 __user *frame; |
122 | sigset_t set; | 123 | sigset_t set; |
@@ -214,11 +215,10 @@ int setup_rt_frame_n32(struct k_sigaction * ka, | |||
214 | regs->regs[31] = (unsigned long) frame->rs_code; | 215 | regs->regs[31] = (unsigned long) frame->rs_code; |
215 | regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; | 216 | regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; |
216 | 217 | ||
217 | #if DEBUG_SIG | 218 | DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n", |
218 | printk("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%p\n", | ||
219 | current->comm, current->pid, | 219 | current->comm, current->pid, |
220 | frame, regs->cp0_epc, regs->regs[31]); | 220 | frame, regs->cp0_epc, regs->regs[31]); |
221 | #endif | 221 | |
222 | return 0; | 222 | return 0; |
223 | 223 | ||
224 | give_sigsegv: | 224 | give_sigsegv: |