aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
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/tile
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/tile')
-rw-r--r--arch/tile/include/asm/thread_info.h2
-rw-r--r--arch/tile/kernel/compat_signal.c9
-rw-r--r--arch/tile/kernel/signal.c9
3 files changed, 2 insertions, 18 deletions
diff --git a/arch/tile/include/asm/thread_info.h b/arch/tile/include/asm/thread_info.h
index 96c14c1430d8..98ee10a0ae89 100644
--- a/arch/tile/include/asm/thread_info.h
+++ b/arch/tile/include/asm/thread_info.h
@@ -26,7 +26,6 @@
26 */ 26 */
27struct thread_info { 27struct thread_info {
28 struct task_struct *task; /* main task structure */ 28 struct task_struct *task; /* main task structure */
29 struct exec_domain *exec_domain; /* execution domain */
30 unsigned long flags; /* low level flags */ 29 unsigned long flags; /* low level flags */
31 unsigned long status; /* thread-synchronous flags */ 30 unsigned long status; /* thread-synchronous flags */
32 __u32 homecache_cpu; /* CPU we are homecached on */ 31 __u32 homecache_cpu; /* CPU we are homecached on */
@@ -51,7 +50,6 @@ struct thread_info {
51#define INIT_THREAD_INFO(tsk) \ 50#define INIT_THREAD_INFO(tsk) \
52{ \ 51{ \
53 .task = &tsk, \ 52 .task = &tsk, \
54 .exec_domain = &default_exec_domain, \
55 .flags = 0, \ 53 .flags = 0, \
56 .cpu = 0, \ 54 .cpu = 0, \
57 .preempt_count = INIT_PREEMPT_COUNT, \ 55 .preempt_count = INIT_PREEMPT_COUNT, \
diff --git a/arch/tile/kernel/compat_signal.c b/arch/tile/kernel/compat_signal.c
index 8c5abf2e4794..5cbc864398d3 100644
--- a/arch/tile/kernel/compat_signal.c
+++ b/arch/tile/kernel/compat_signal.c
@@ -196,19 +196,12 @@ int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set,
196 unsigned long restorer; 196 unsigned long restorer;
197 struct compat_rt_sigframe __user *frame; 197 struct compat_rt_sigframe __user *frame;
198 int err = 0, sig = ksig->sig; 198 int err = 0, sig = ksig->sig;
199 int usig;
200 199
201 frame = compat_get_sigframe(&ksig->ka, regs, sizeof(*frame)); 200 frame = compat_get_sigframe(&ksig->ka, regs, sizeof(*frame));
202 201
203 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 202 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
204 goto err; 203 goto err;
205 204
206 usig = current_thread_info()->exec_domain
207 && current_thread_info()->exec_domain->signal_invmap
208 && sig < 32
209 ? current_thread_info()->exec_domain->signal_invmap[sig]
210 : sig;
211
212 /* Always write at least the signal number for the stack backtracer. */ 205 /* Always write at least the signal number for the stack backtracer. */
213 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { 206 if (ksig->ka.sa.sa_flags & SA_SIGINFO) {
214 /* At sigreturn time, restore the callee-save registers too. */ 207 /* At sigreturn time, restore the callee-save registers too. */
@@ -243,7 +236,7 @@ int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set,
243 regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */ 236 regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */
244 regs->sp = ptr_to_compat_reg(frame); 237 regs->sp = ptr_to_compat_reg(frame);
245 regs->lr = restorer; 238 regs->lr = restorer;
246 regs->regs[0] = (unsigned long) usig; 239 regs->regs[0] = (unsigned long) sig;
247 regs->regs[1] = ptr_to_compat_reg(&frame->info); 240 regs->regs[1] = ptr_to_compat_reg(&frame->info);
248 regs->regs[2] = ptr_to_compat_reg(&frame->uc); 241 regs->regs[2] = ptr_to_compat_reg(&frame->uc);
249 regs->flags |= PT_FLAGS_CALLER_SAVES; 242 regs->flags |= PT_FLAGS_CALLER_SAVES;
diff --git a/arch/tile/kernel/signal.c b/arch/tile/kernel/signal.c
index 8a524e332c1a..87299a6cfec8 100644
--- a/arch/tile/kernel/signal.c
+++ b/arch/tile/kernel/signal.c
@@ -151,19 +151,12 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
151 unsigned long restorer; 151 unsigned long restorer;
152 struct rt_sigframe __user *frame; 152 struct rt_sigframe __user *frame;
153 int err = 0, sig = ksig->sig; 153 int err = 0, sig = ksig->sig;
154 int usig;
155 154
156 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); 155 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame));
157 156
158 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 157 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
159 goto err; 158 goto err;
160 159
161 usig = current_thread_info()->exec_domain
162 && current_thread_info()->exec_domain->signal_invmap
163 && sig < 32
164 ? current_thread_info()->exec_domain->signal_invmap[sig]
165 : sig;
166
167 /* Always write at least the signal number for the stack backtracer. */ 160 /* Always write at least the signal number for the stack backtracer. */
168 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { 161 if (ksig->ka.sa.sa_flags & SA_SIGINFO) {
169 /* At sigreturn time, restore the callee-save registers too. */ 162 /* At sigreturn time, restore the callee-save registers too. */
@@ -198,7 +191,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
198 regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */ 191 regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */
199 regs->sp = (unsigned long) frame; 192 regs->sp = (unsigned long) frame;
200 regs->lr = restorer; 193 regs->lr = restorer;
201 regs->regs[0] = (unsigned long) usig; 194 regs->regs[0] = (unsigned long) sig;
202 regs->regs[1] = (unsigned long) &frame->info; 195 regs->regs[1] = (unsigned long) &frame->info;
203 regs->regs[2] = (unsigned long) &frame->uc; 196 regs->regs[2] = (unsigned long) &frame->uc;
204 regs->flags |= PT_FLAGS_CALLER_SAVES; 197 regs->flags |= PT_FLAGS_CALLER_SAVES;