aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r
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/m32r
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/m32r')
-rw-r--r--arch/m32r/include/asm/asm-offsets.h1
-rw-r--r--arch/m32r/include/asm/thread_info.h15
-rw-r--r--arch/m32r/kernel/asm-offsets.c15
-rw-r--r--arch/m32r/kernel/entry.S1
-rw-r--r--arch/m32r/kernel/signal.c12
5 files changed, 20 insertions, 24 deletions
diff --git a/arch/m32r/include/asm/asm-offsets.h b/arch/m32r/include/asm/asm-offsets.h
new file mode 100644
index 000000000000..d370ee36a182
--- /dev/null
+++ b/arch/m32r/include/asm/asm-offsets.h
@@ -0,0 +1 @@
#include <generated/asm-offsets.h>
diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h
index 32422d0211c3..f630d9c30b28 100644
--- a/arch/m32r/include/asm/thread_info.h
+++ b/arch/m32r/include/asm/thread_info.h
@@ -24,7 +24,6 @@
24 24
25struct thread_info { 25struct thread_info {
26 struct task_struct *task; /* main task structure */ 26 struct task_struct *task; /* main task structure */
27 struct exec_domain *exec_domain; /* execution domain */
28 unsigned long flags; /* low level flags */ 27 unsigned long flags; /* low level flags */
29 unsigned long status; /* thread-synchronous flags */ 28 unsigned long status; /* thread-synchronous flags */
30 __u32 cpu; /* current CPU */ 29 __u32 cpu; /* current CPU */
@@ -38,18 +37,7 @@ struct thread_info {
38 __u8 supervisor_stack[0]; 37 __u8 supervisor_stack[0];
39}; 38};
40 39
41#else /* !__ASSEMBLY__ */ 40#endif /* !__ASSEMBLY__ */
42
43/* offsets into the thread_info struct for assembly code access */
44#define TI_TASK 0x00000000
45#define TI_EXEC_DOMAIN 0x00000004
46#define TI_FLAGS 0x00000008
47#define TI_STATUS 0x0000000C
48#define TI_CPU 0x00000010
49#define TI_PRE_COUNT 0x00000014
50#define TI_ADDR_LIMIT 0x00000018
51
52#endif
53 41
54#define THREAD_SIZE (PAGE_SIZE << 1) 42#define THREAD_SIZE (PAGE_SIZE << 1)
55#define THREAD_SIZE_ORDER 1 43#define THREAD_SIZE_ORDER 1
@@ -61,7 +49,6 @@ struct thread_info {
61#define INIT_THREAD_INFO(tsk) \ 49#define INIT_THREAD_INFO(tsk) \
62{ \ 50{ \
63 .task = &tsk, \ 51 .task = &tsk, \
64 .exec_domain = &default_exec_domain, \
65 .flags = 0, \ 52 .flags = 0, \
66 .cpu = 0, \ 53 .cpu = 0, \
67 .preempt_count = INIT_PREEMPT_COUNT, \ 54 .preempt_count = INIT_PREEMPT_COUNT, \
diff --git a/arch/m32r/kernel/asm-offsets.c b/arch/m32r/kernel/asm-offsets.c
index 9e263112a6e2..cd3d2fc9c8df 100644
--- a/arch/m32r/kernel/asm-offsets.c
+++ b/arch/m32r/kernel/asm-offsets.c
@@ -1 +1,14 @@
1/* Dummy asm-offsets.c file. Required by kbuild and ready to be used - hint! */ 1#include <linux/thread_info.h>
2#include <linux/kbuild.h>
3
4int foo(void)
5{
6 OFFSET(TI_TASK, thread_info, task);
7 OFFSET(TI_FLAGS, thread_info, flags);
8 OFFSET(TI_STATUS, thread_info, status);
9 OFFSET(TI_CPU, thread_info, cpu);
10 OFFSET(TI_PRE_COUNT, thread_info, preempt_count);
11 OFFSET(TI_ADDR_LIMIT, thread_info, addr_limit);
12
13 return 0;
14}
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S
index 7c3db9940ce1..c639bfa32232 100644
--- a/arch/m32r/kernel/entry.S
+++ b/arch/m32r/kernel/entry.S
@@ -65,6 +65,7 @@
65#include <asm/page.h> 65#include <asm/page.h>
66#include <asm/m32r.h> 66#include <asm/m32r.h>
67#include <asm/mmu_context.h> 67#include <asm/mmu_context.h>
68#include <asm/asm-offsets.h>
68 69
69#if !defined(CONFIG_MMU) 70#if !defined(CONFIG_MMU)
70#define sys_madvise sys_ni_syscall 71#define sys_madvise sys_ni_syscall
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c
index 8c25e0c8f6a5..1c81e24fd006 100644
--- a/arch/m32r/kernel/signal.c
+++ b/arch/m32r/kernel/signal.c
@@ -172,20 +172,14 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
172{ 172{
173 struct rt_sigframe __user *frame; 173 struct rt_sigframe __user *frame;
174 int err = 0; 174 int err = 0;
175 int signal, sig = ksig->sig; 175 int sig = ksig->sig;
176 176
177 frame = get_sigframe(ksig, regs->spu, sizeof(*frame)); 177 frame = get_sigframe(ksig, regs->spu, sizeof(*frame));
178 178
179 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 179 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
180 return -EFAULT; 180 return -EFAULT;
181 181
182 signal = current_thread_info()->exec_domain 182 err |= __put_user(sig, &frame->sig);
183 && current_thread_info()->exec_domain->signal_invmap
184 && sig < 32
185 ? current_thread_info()->exec_domain->signal_invmap[sig]
186 : sig;
187
188 err |= __put_user(signal, &frame->sig);
189 if (err) 183 if (err)
190 return -EFAULT; 184 return -EFAULT;
191 185
@@ -209,7 +203,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
209 203
210 /* Set up registers for signal handler */ 204 /* Set up registers for signal handler */
211 regs->spu = (unsigned long)frame; 205 regs->spu = (unsigned long)frame;
212 regs->r0 = signal; /* Arg for signal handler */ 206 regs->r0 = sig; /* Arg for signal handler */
213 regs->r1 = (unsigned long)&frame->info; 207 regs->r1 = (unsigned long)&frame->info;
214 regs->r2 = (unsigned long)&frame->uc; 208 regs->r2 = (unsigned long)&frame->uc;
215 regs->bpc = (unsigned long)ksig->ka.sa.sa_handler; 209 regs->bpc = (unsigned long)ksig->ka.sa.sa_handler;