aboutsummaryrefslogtreecommitdiffstats
path: root/arch/score
diff options
context:
space:
mode:
Diffstat (limited to 'arch/score')
-rw-r--r--arch/score/Kconfig1
-rw-r--r--arch/score/include/asm/elf.h5
-rw-r--r--arch/score/include/asm/syscalls.h1
-rw-r--r--arch/score/kernel/entry.S5
-rw-r--r--arch/score/kernel/signal.c21
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) \
56do { \
57 set_personality(PER_LINUX | (current->personality & (~PER_MASK))); \
58} while (0)
59
60struct task_struct; 55struct task_struct;
61struct pt_regs; 56struct 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
4asmlinkage long score_sigaltstack(struct pt_regs *regs);
5asmlinkage long score_rt_sigreturn(struct pt_regs *regs); 4asmlinkage 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
495ENTRY(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
136asmlinkage long 136asmlinkage long
137score_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
146asmlinkage long
147score_rt_sigreturn(struct pt_regs *regs) 137score_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