X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=arch%2Ffrv%2Fkernel%2Fprocess.c;h=9583a338e9d6022b7529dcffa34201917502151d;hb=983f91ff949d9008eb7fb73ba4e35f9decc182b3;hp=eeeb1e2641d5b49e14a1f760ea90001d75273a45;hpb=93fdf10d4c28edaa1b9f80e7f9c3002359186d00;p=linux-2.6-omap-h63xx.git diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c index eeeb1e2641d..9583a338e9d 100644 --- a/arch/frv/kernel/process.c +++ b/arch/frv/kernel/process.c @@ -10,6 +10,7 @@ * 2 of the License, or (at your option) any later version. */ +#include #include #include #include @@ -24,11 +25,14 @@ #include #include #include +#include +#include #include #include #include #include +#include #include #include @@ -38,6 +42,9 @@ asmlinkage void ret_from_fork(void); #include +void (*pm_power_off)(void); +EXPORT_SYMBOL(pm_power_off); + struct task_struct *alloc_task_struct(void) { struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL); @@ -83,6 +90,8 @@ void cpu_idle(void) while (!need_resched()) { irq_stat[cpu].idle_timestamp = jiffies; + check_pgt_cache(); + if (!frv_dma_inprogress && idle) idle(); } @@ -203,7 +212,7 @@ int copy_thread(int nr, unsigned long clone_flags, regs0 = __kernel_frame0_ptr; childregs0 = (struct pt_regs *) - (task_stack_page(p) + THREAD_SIZE - USER_CONTEXT_SIZE); + (task_stack_page(p) + THREAD_SIZE - FRV_FRAME0_SIZE); childregs = childregs0; /* set up the userspace frame (the only place that the USP is stored) */ @@ -367,3 +376,11 @@ int elf_check_arch(const struct elf32_hdr *hdr) return 1; } + +int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpregs) +{ + memcpy(fpregs, + ¤t->thread.user->f, + sizeof(current->thread.user->f)); + return 1; +}