diff options
Diffstat (limited to 'arch/score')
-rw-r--r-- | arch/score/Kconfig | 1 | ||||
-rw-r--r-- | arch/score/include/asm/elf.h | 5 | ||||
-rw-r--r-- | arch/score/include/asm/syscalls.h | 1 | ||||
-rw-r--r-- | arch/score/kernel/entry.S | 5 | ||||
-rw-r--r-- | arch/score/kernel/signal.c | 21 |
5 files changed, 3 insertions, 30 deletions
diff --git a/arch/score/Kconfig b/arch/score/Kconfig index 3b1482e7afac..c8def8bc9020 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig | |||
@@ -12,6 +12,7 @@ config SCORE | |||
12 | select GENERIC_CPU_DEVICES | 12 | select GENERIC_CPU_DEVICES |
13 | select GENERIC_CLOCKEVENTS | 13 | select GENERIC_CLOCKEVENTS |
14 | select HAVE_MOD_ARCH_SPECIFIC | 14 | select HAVE_MOD_ARCH_SPECIFIC |
15 | select VIRT_TO_BUS | ||
15 | select MODULES_USE_ELF_REL | 16 | select MODULES_USE_ELF_REL |
16 | select CLONE_BACKWARDS | 17 | select CLONE_BACKWARDS |
17 | 18 | ||
diff --git a/arch/score/include/asm/elf.h b/arch/score/include/asm/elf.h index 5d566c7a0af2..6a9421c693ca 100644 --- a/arch/score/include/asm/elf.h +++ b/arch/score/include/asm/elf.h | |||
@@ -52,11 +52,6 @@ typedef elf_fpreg_t elf_fpregset_t; | |||
52 | #define ELF_DATA ELFDATA2LSB | 52 | #define ELF_DATA ELFDATA2LSB |
53 | #define ELF_ARCH EM_SCORE7 | 53 | #define ELF_ARCH EM_SCORE7 |
54 | 54 | ||
55 | #define SET_PERSONALITY(ex) \ | ||
56 | do { \ | ||
57 | set_personality(PER_LINUX | (current->personality & (~PER_MASK))); \ | ||
58 | } while (0) | ||
59 | |||
60 | struct task_struct; | 55 | struct task_struct; |
61 | struct pt_regs; | 56 | struct pt_regs; |
62 | 57 | ||
diff --git a/arch/score/include/asm/syscalls.h b/arch/score/include/asm/syscalls.h index acaeed680956..98d1df92fbd1 100644 --- a/arch/score/include/asm/syscalls.h +++ b/arch/score/include/asm/syscalls.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_SCORE_SYSCALLS_H | 1 | #ifndef _ASM_SCORE_SYSCALLS_H |
2 | #define _ASM_SCORE_SYSCALLS_H | 2 | #define _ASM_SCORE_SYSCALLS_H |
3 | 3 | ||
4 | asmlinkage long score_sigaltstack(struct pt_regs *regs); | ||
5 | asmlinkage long score_rt_sigreturn(struct pt_regs *regs); | 4 | asmlinkage long score_rt_sigreturn(struct pt_regs *regs); |
6 | 5 | ||
7 | #include <asm-generic/syscalls.h> | 6 | #include <asm-generic/syscalls.h> |
diff --git a/arch/score/kernel/entry.S b/arch/score/kernel/entry.S index 1557ca1a2951..7234ed09b7b7 100644 --- a/arch/score/kernel/entry.S +++ b/arch/score/kernel/entry.S | |||
@@ -491,8 +491,3 @@ ENTRY(sys_rt_sigreturn) | |||
491 | mv r4, r0 | 491 | mv r4, r0 |
492 | la r8, score_rt_sigreturn | 492 | la r8, score_rt_sigreturn |
493 | br r8 | 493 | br r8 |
494 | |||
495 | ENTRY(sys_sigaltstack) | ||
496 | mv r4, r0 | ||
497 | la r8, score_sigaltstack | ||
498 | br r8 | ||
diff --git a/arch/score/kernel/signal.c b/arch/score/kernel/signal.c index 02353bde92d8..a00fba32b0eb 100644 --- a/arch/score/kernel/signal.c +++ b/arch/score/kernel/signal.c | |||
@@ -134,16 +134,6 @@ static void __user *get_sigframe(struct k_sigaction *ka, | |||
134 | } | 134 | } |
135 | 135 | ||
136 | asmlinkage long | 136 | asmlinkage long |
137 | score_sigaltstack(struct pt_regs *regs) | ||
138 | { | ||
139 | const stack_t __user *uss = (const stack_t __user *) regs->regs[4]; | ||
140 | stack_t __user *uoss = (stack_t __user *) regs->regs[5]; | ||
141 | unsigned long usp = regs->regs[0]; | ||
142 | |||
143 | return do_sigaltstack(uss, uoss, usp); | ||
144 | } | ||
145 | |||
146 | asmlinkage long | ||
147 | score_rt_sigreturn(struct pt_regs *regs) | 137 | score_rt_sigreturn(struct pt_regs *regs) |
148 | { | 138 | { |
149 | struct rt_sigframe __user *frame; | 139 | struct rt_sigframe __user *frame; |
@@ -167,9 +157,7 @@ score_rt_sigreturn(struct pt_regs *regs) | |||
167 | else if (sig) | 157 | else if (sig) |
168 | force_sig(sig, current); | 158 | force_sig(sig, current); |
169 | 159 | ||
170 | /* It is more difficult to avoid calling this function than to | 160 | if (restore_altstack(&frame->rs_uc.uc_stack)) |
171 | call it and ignore errors. */ | ||
172 | if (do_sigaltstack(&frame->rs_uc.uc_stack, NULL, regs->regs[0]) == -EFAULT) | ||
173 | goto badframe; | 161 | goto badframe; |
174 | regs->is_syscall = 0; | 162 | regs->is_syscall = 0; |
175 | 163 | ||
@@ -209,12 +197,7 @@ static int setup_rt_frame(struct k_sigaction *ka, struct pt_regs *regs, | |||
209 | err |= copy_siginfo_to_user(&frame->rs_info, info); | 197 | err |= copy_siginfo_to_user(&frame->rs_info, info); |
210 | err |= __put_user(0, &frame->rs_uc.uc_flags); | 198 | err |= __put_user(0, &frame->rs_uc.uc_flags); |
211 | err |= __put_user(NULL, &frame->rs_uc.uc_link); | 199 | err |= __put_user(NULL, &frame->rs_uc.uc_link); |
212 | err |= __put_user((void __user *)current->sas_ss_sp, | 200 | err |= __save_altstack(&frame->rs_uc.uc_stack, regs->regs[0]); |
213 | &frame->rs_uc.uc_stack.ss_sp); | ||
214 | err |= __put_user(sas_ss_flags(regs->regs[0]), | ||
215 | &frame->rs_uc.uc_stack.ss_flags); | ||
216 | err |= __put_user(current->sas_ss_size, | ||
217 | &frame->rs_uc.uc_stack.ss_size); | ||
218 | err |= setup_sigcontext(regs, &frame->rs_uc.uc_mcontext); | 201 | err |= setup_sigcontext(regs, &frame->rs_uc.uc_mcontext); |
219 | err |= __copy_to_user(&frame->rs_uc.uc_sigmask, set, sizeof(*set)); | 202 | err |= __copy_to_user(&frame->rs_uc.uc_sigmask, set, sizeof(*set)); |
220 | 203 | ||