aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Weinberger <richard@nod.at>2014-07-13 11:15:06 -0400
committerRichard Weinberger <richard@nod.at>2015-04-12 14:58:24 -0400
commit7bd8301084dfaf9210f66142fadb62a2bee7588b (patch)
tree64a067dfe5df1169b56f11bb26542c87b18fa66c
parent61622aa399ecc65601331b946395ce095cb7c9d8 (diff)
frv: Remove signal translation and exec_domain
As execution domain support is gone we can remove signal translation from the signal code and remove exec_domain from thread_info. Signed-off-by: Richard Weinberger <richard@nod.at>
-rw-r--r--arch/blackfin/kernel/signal.c2
-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
4 files changed, 5 insertions, 20 deletions
diff --git a/arch/blackfin/kernel/signal.c b/arch/blackfin/kernel/signal.c
index 1982a140215a..ea570db598e5 100644
--- a/arch/blackfin/kernel/signal.c
+++ b/arch/blackfin/kernel/signal.c
@@ -151,7 +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(sig->sig, &frame->sig); 154 err |= __put_user(ksig->sig, &frame->sig);
155 155
156 err |= __put_user(&frame->info, &frame->pinfo); 156 err |= __put_user(&frame->info, &frame->pinfo);
157 err |= __put_user(&frame->uc, &frame->puc); 157 err |= __put_user(&frame->uc, &frame->puc);
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 336713ab4745..75c602dc874f 100644
--- a/arch/frv/kernel/signal.c
+++ b/arch/frv/kernel/signal.c
@@ -174,7 +174,7 @@ 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 set_fs(USER_DS); 179 set_fs(USER_DS);
180 180
@@ -183,13 +183,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set)
183 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 183 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
184 return -EFAULT; 184 return -EFAULT;
185 185
186 rsig = sig; 186 if (__put_user(sig, &frame->sig) < 0)
187 if (sig < 32 &&
188 __current_thread_info->exec_domain &&
189 __current_thread_info->exec_domain->signal_invmap)
190 rsig = __current_thread_info->exec_domain->signal_invmap[sig];
191
192 if (__put_user(rsig, &frame->sig) < 0)
193 return -EFAULT; 187 return -EFAULT;
194 188
195 if (setup_sigcontext(&frame->sc, set->sig[0])) 189 if (setup_sigcontext(&frame->sc, set->sig[0]))
@@ -255,7 +249,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set)
255static int setup_rt_frame(struct ksignal *ksig, sigset_t *set) 249static int setup_rt_frame(struct ksignal *ksig, sigset_t *set)
256{ 250{
257 struct rt_sigframe __user *frame; 251 struct rt_sigframe __user *frame;
258 int rsig, sig = ksig->sig; 252 int sig = ksig->sig;
259 253
260 set_fs(USER_DS); 254 set_fs(USER_DS);
261 255
@@ -264,13 +258,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set)
264 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 258 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
265 return -EFAULT; 259 return -EFAULT;
266 260
267 rsig = sig; 261 if (__put_user(sig, &frame->sig) ||
268 if (sig < 32 &&
269 __current_thread_info->exec_domain &&
270 __current_thread_info->exec_domain->signal_invmap)
271 rsig = __current_thread_info->exec_domain->signal_invmap[sig];
272
273 if (__put_user(rsig, &frame->sig) ||
274 __put_user(&frame->info, &frame->pinfo) || 262 __put_user(&frame->info, &frame->pinfo) ||
275 __put_user(&frame->uc, &frame->puc)) 263 __put_user(&frame->uc, &frame->puc))
276 return -EFAULT; 264 return -EFAULT;