summaryrefslogtreecommitdiffstats
path: root/arch/frv
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-15 16:53:55 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-15 16:53:55 -0400
commitfa2e5c073a355465a2a8c9a2fbecf404f9857c3a (patch)
tree771be75e5436031ad53649634dffa67f6667b083 /arch/frv
parente44740c1a94b5d39b093045920f543a7bc135584 (diff)
parent97b2f0dc331474fb80ba4f4e4aee1d8e9ffbf7ce (diff)
Merge branch 'exec_domain_rip_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc
Pull exec domain removal from Richard Weinberger: "This series removes execution domain support from Linux. The idea behind exec domains was to support different ABIs. The feature was never complete nor stable. Let's rip it out and make the kernel signal handling code less complicated" * 'exec_domain_rip_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc: (27 commits) arm64: Removed unused variable sparc: Fix execution domain removal Remove rest of exec domains. arch: Remove exec_domain from remaining archs arc: Remove signal translation and exec_domain xtensa: Remove signal translation and exec_domain xtensa: Autogenerate offsets in struct thread_info x86: Remove signal translation and exec_domain unicore32: Remove signal translation and exec_domain um: Remove signal translation and exec_domain tile: Remove signal translation and exec_domain sparc: Remove signal translation and exec_domain sh: Remove signal translation and exec_domain s390: Remove signal translation and exec_domain mn10300: Remove signal translation and exec_domain microblaze: Remove signal translation and exec_domain m68k: Remove signal translation and exec_domain m32r: Remove signal translation and exec_domain m32r: Autogenerate offsets in struct thread_info frv: Remove signal translation and exec_domain ...
Diffstat (limited to 'arch/frv')
-rw-r--r--arch/frv/include/asm/thread_info.h2
-rw-r--r--arch/frv/kernel/asm-offsets.c1
-rw-r--r--arch/frv/kernel/signal.c20
3 files changed, 4 insertions, 19 deletions
diff --git a/arch/frv/include/asm/thread_info.h b/arch/frv/include/asm/thread_info.h
index 6b917f1c2955..ccba3b6ce918 100644
--- a/arch/frv/include/asm/thread_info.h
+++ b/arch/frv/include/asm/thread_info.h
@@ -31,7 +31,6 @@
31 31
32struct thread_info { 32struct thread_info {
33 struct task_struct *task; /* main task structure */ 33 struct task_struct *task; /* main task structure */
34 struct exec_domain *exec_domain; /* execution domain */
35 unsigned long flags; /* low level flags */ 34 unsigned long flags; /* low level flags */
36 unsigned long status; /* thread-synchronous flags */ 35 unsigned long status; /* thread-synchronous flags */
37 __u32 cpu; /* current CPU */ 36 __u32 cpu; /* current CPU */
@@ -59,7 +58,6 @@ struct thread_info {
59#define INIT_THREAD_INFO(tsk) \ 58#define INIT_THREAD_INFO(tsk) \
60{ \ 59{ \
61 .task = &tsk, \ 60 .task = &tsk, \
62 .exec_domain = &default_exec_domain, \
63 .flags = 0, \ 61 .flags = 0, \
64 .cpu = 0, \ 62 .cpu = 0, \
65 .preempt_count = INIT_PREEMPT_COUNT, \ 63 .preempt_count = INIT_PREEMPT_COUNT, \
diff --git a/arch/frv/kernel/asm-offsets.c b/arch/frv/kernel/asm-offsets.c
index 446e89d500cc..8414293f213a 100644
--- a/arch/frv/kernel/asm-offsets.c
+++ b/arch/frv/kernel/asm-offsets.c
@@ -34,7 +34,6 @@ void foo(void)
34{ 34{
35 /* offsets into the thread_info structure */ 35 /* offsets into the thread_info structure */
36 OFFSET(TI_TASK, thread_info, task); 36 OFFSET(TI_TASK, thread_info, task);
37 OFFSET(TI_EXEC_DOMAIN, thread_info, exec_domain);
38 OFFSET(TI_FLAGS, thread_info, flags); 37 OFFSET(TI_FLAGS, thread_info, flags);
39 OFFSET(TI_STATUS, thread_info, status); 38 OFFSET(TI_STATUS, thread_info, status);
40 OFFSET(TI_CPU, thread_info, cpu); 39 OFFSET(TI_CPU, thread_info, cpu);
diff --git a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c
index 85ca6727ca07..82d5e914dc15 100644
--- a/arch/frv/kernel/signal.c
+++ b/arch/frv/kernel/signal.c
@@ -174,20 +174,14 @@ static inline void __user *get_sigframe(struct ksignal *ksig,
174static int setup_frame(struct ksignal *ksig, sigset_t *set) 174static int setup_frame(struct ksignal *ksig, sigset_t *set)
175{ 175{
176 struct sigframe __user *frame; 176 struct sigframe __user *frame;
177 int rsig, sig = ksig->sig; 177 int sig = ksig->sig;
178 178
179 frame = get_sigframe(ksig, sizeof(*frame)); 179 frame = get_sigframe(ksig, sizeof(*frame));
180 180
181 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 181 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
182 return -EFAULT; 182 return -EFAULT;
183 183
184 rsig = sig; 184 if (__put_user(sig, &frame->sig) < 0)
185 if (sig < 32 &&
186 __current_thread_info->exec_domain &&
187 __current_thread_info->exec_domain->signal_invmap)
188 rsig = __current_thread_info->exec_domain->signal_invmap[sig];
189
190 if (__put_user(rsig, &frame->sig) < 0)
191 return -EFAULT; 185 return -EFAULT;
192 186
193 if (setup_sigcontext(&frame->sc, set->sig[0])) 187 if (setup_sigcontext(&frame->sc, set->sig[0]))
@@ -253,20 +247,14 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set)
253static int setup_rt_frame(struct ksignal *ksig, sigset_t *set) 247static int setup_rt_frame(struct ksignal *ksig, sigset_t *set)
254{ 248{
255 struct rt_sigframe __user *frame; 249 struct rt_sigframe __user *frame;
256 int rsig, sig = ksig->sig; 250 int sig = ksig->sig;
257 251
258 frame = get_sigframe(ksig, sizeof(*frame)); 252 frame = get_sigframe(ksig, sizeof(*frame));
259 253
260 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 254 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
261 return -EFAULT; 255 return -EFAULT;
262 256
263 rsig = sig; 257 if (__put_user(sig, &frame->sig) ||
264 if (sig < 32 &&
265 __current_thread_info->exec_domain &&
266 __current_thread_info->exec_domain->signal_invmap)
267 rsig = __current_thread_info->exec_domain->signal_invmap[sig];
268
269 if (__put_user(rsig, &frame->sig) ||
270 __put_user(&frame->info, &frame->pinfo) || 258 __put_user(&frame->info, &frame->pinfo) ||
271 __put_user(&frame->uc, &frame->puc)) 259 __put_user(&frame->uc, &frame->puc))
272 return -EFAULT; 260 return -EFAULT;