diff options
Diffstat (limited to 'arch/frv/kernel/process.c')
-rw-r--r-- | arch/frv/kernel/process.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c index eeeb1e2641d5..515a5cea5469 100644 --- a/arch/frv/kernel/process.c +++ b/arch/frv/kernel/process.c | |||
@@ -10,6 +10,7 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/module.h> | ||
13 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
14 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
@@ -25,6 +26,7 @@ | |||
25 | #include <linux/reboot.h> | 26 | #include <linux/reboot.h> |
26 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
27 | 28 | ||
29 | #include <asm/asm-offsets.h> | ||
28 | #include <asm/uaccess.h> | 30 | #include <asm/uaccess.h> |
29 | #include <asm/system.h> | 31 | #include <asm/system.h> |
30 | #include <asm/setup.h> | 32 | #include <asm/setup.h> |
@@ -38,6 +40,9 @@ asmlinkage void ret_from_fork(void); | |||
38 | 40 | ||
39 | #include <asm/pgalloc.h> | 41 | #include <asm/pgalloc.h> |
40 | 42 | ||
43 | void (*pm_power_off)(void); | ||
44 | EXPORT_SYMBOL(pm_power_off); | ||
45 | |||
41 | struct task_struct *alloc_task_struct(void) | 46 | struct task_struct *alloc_task_struct(void) |
42 | { | 47 | { |
43 | struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL); | 48 | struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL); |
@@ -203,7 +208,7 @@ int copy_thread(int nr, unsigned long clone_flags, | |||
203 | 208 | ||
204 | regs0 = __kernel_frame0_ptr; | 209 | regs0 = __kernel_frame0_ptr; |
205 | childregs0 = (struct pt_regs *) | 210 | childregs0 = (struct pt_regs *) |
206 | (task_stack_page(p) + THREAD_SIZE - USER_CONTEXT_SIZE); | 211 | (task_stack_page(p) + THREAD_SIZE - FRV_FRAME0_SIZE); |
207 | childregs = childregs0; | 212 | childregs = childregs0; |
208 | 213 | ||
209 | /* set up the userspace frame (the only place that the USP is stored) */ | 214 | /* set up the userspace frame (the only place that the USP is stored) */ |
@@ -367,3 +372,11 @@ int elf_check_arch(const struct elf32_hdr *hdr) | |||
367 | 372 | ||
368 | return 1; | 373 | return 1; |
369 | } | 374 | } |
375 | |||
376 | int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpregs) | ||
377 | { | ||
378 | memcpy(fpregs, | ||
379 | ¤t->thread.user->f, | ||
380 | sizeof(current->thread.user->f)); | ||
381 | return 1; | ||
382 | } | ||