aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin
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/blackfin
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/blackfin')
-rw-r--r--arch/blackfin/include/asm/thread_info.h11
-rw-r--r--arch/blackfin/kernel/asm-offsets.c6
-rw-r--r--arch/blackfin/kernel/signal.c6
-rw-r--r--arch/blackfin/kernel/traps.c1
4 files changed, 8 insertions, 16 deletions
diff --git a/arch/blackfin/include/asm/thread_info.h b/arch/blackfin/include/asm/thread_info.h
index 57c3a8bd583d..2966b93850a1 100644
--- a/arch/blackfin/include/asm/thread_info.h
+++ b/arch/blackfin/include/asm/thread_info.h
@@ -37,7 +37,6 @@ typedef unsigned long mm_segment_t;
37 37
38struct thread_info { 38struct thread_info {
39 struct task_struct *task; /* main task structure */ 39 struct task_struct *task; /* main task structure */
40 struct exec_domain *exec_domain; /* execution domain */
41 unsigned long flags; /* low level flags */ 40 unsigned long flags; /* low level flags */
42 int cpu; /* cpu we're on */ 41 int cpu; /* cpu we're on */
43 int preempt_count; /* 0 => preemptable, <0 => BUG */ 42 int preempt_count; /* 0 => preemptable, <0 => BUG */
@@ -53,7 +52,6 @@ struct thread_info {
53#define INIT_THREAD_INFO(tsk) \ 52#define INIT_THREAD_INFO(tsk) \
54{ \ 53{ \
55 .task = &tsk, \ 54 .task = &tsk, \
56 .exec_domain = &default_exec_domain, \
57 .flags = 0, \ 55 .flags = 0, \
58 .cpu = 0, \ 56 .cpu = 0, \
59 .preempt_count = INIT_PREEMPT_COUNT, \ 57 .preempt_count = INIT_PREEMPT_COUNT, \
@@ -76,15 +74,6 @@ static inline struct thread_info *current_thread_info(void)
76#endif /* __ASSEMBLY__ */ 74#endif /* __ASSEMBLY__ */
77 75
78/* 76/*
79 * Offsets in thread_info structure, used in assembly code
80 */
81#define TI_TASK 0
82#define TI_EXECDOMAIN 4
83#define TI_FLAGS 8
84#define TI_CPU 12
85#define TI_PREEMPT 16
86
87/*
88 * thread information flag bit numbers 77 * thread information flag bit numbers
89 */ 78 */
90#define TIF_SYSCALL_TRACE 0 /* syscall trace active */ 79#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
diff --git a/arch/blackfin/kernel/asm-offsets.c b/arch/blackfin/kernel/asm-offsets.c
index 37fcae950216..486560aea050 100644
--- a/arch/blackfin/kernel/asm-offsets.c
+++ b/arch/blackfin/kernel/asm-offsets.c
@@ -42,6 +42,12 @@ int main(void)
42 DEFINE(THREAD_PC, offsetof(struct thread_struct, pc)); 42 DEFINE(THREAD_PC, offsetof(struct thread_struct, pc));
43 DEFINE(KERNEL_STACK_SIZE, THREAD_SIZE); 43 DEFINE(KERNEL_STACK_SIZE, THREAD_SIZE);
44 44
45 /* offsets in thread_info struct */
46 OFFSET(TI_TASK, thread_info, task);
47 OFFSET(TI_FLAGS, thread_info, flags);
48 OFFSET(TI_CPU, thread_info, cpu);
49 OFFSET(TI_PREEMPT, thread_info, preempt_count);
50
45 /* offsets into the pt_regs */ 51 /* offsets into the pt_regs */
46 DEFINE(PT_ORIG_R0, offsetof(struct pt_regs, orig_r0)); 52 DEFINE(PT_ORIG_R0, offsetof(struct pt_regs, orig_r0));
47 DEFINE(PT_ORIG_P0, offsetof(struct pt_regs, orig_p0)); 53 DEFINE(PT_ORIG_P0, offsetof(struct pt_regs, orig_p0));
diff --git a/arch/blackfin/kernel/signal.c b/arch/blackfin/kernel/signal.c
index f2a8b5493bd3..ea570db598e5 100644
--- a/arch/blackfin/kernel/signal.c
+++ b/arch/blackfin/kernel/signal.c
@@ -151,11 +151,7 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs)
151 151
152 frame = get_sigframe(ksig, sizeof(*frame)); 152 frame = get_sigframe(ksig, sizeof(*frame));
153 153
154 err |= __put_user((current_thread_info()->exec_domain 154 err |= __put_user(ksig->sig, &frame->sig);
155 && current_thread_info()->exec_domain->signal_invmap
156 && ksig->sig < 32
157 ? current_thread_info()->exec_domain->
158 signal_invmap[ksig->sig] : ksig->sig), &frame->sig);
159 155
160 err |= __put_user(&frame->info, &frame->pinfo); 156 err |= __put_user(&frame->info, &frame->pinfo);
161 err |= __put_user(&frame->uc, &frame->puc); 157 err |= __put_user(&frame->uc, &frame->puc);
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index de5c2c3ebd9b..1ed85ddadc0d 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -18,6 +18,7 @@
18#include <asm/fixed_code.h> 18#include <asm/fixed_code.h>
19#include <asm/pseudo_instructions.h> 19#include <asm/pseudo_instructions.h>
20#include <asm/pda.h> 20#include <asm/pda.h>
21#include <asm/asm-offsets.h>
21 22
22#ifdef CONFIG_KGDB 23#ifdef CONFIG_KGDB
23# include <linux/kgdb.h> 24# include <linux/kgdb.h>