Pull thermal into release branch
[linux-drm-fsl-dcu.git] / arch / frv / kernel / process.c
index 0fff8a61ef2a8ba2032ebfb50cfb553ff94cc97b..9583a338e9d6022b7529dcffa34201917502151d 100644 (file)
@@ -10,7 +10,7 @@
  * 2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
+#include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
 #include <linux/elf.h>
 #include <linux/reboot.h>
 #include <linux/interrupt.h>
+#include <linux/pagemap.h>
 
+#include <asm/asm-offsets.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/setup.h>
 #include <asm/pgtable.h>
+#include <asm/tlb.h>
 #include <asm/gdb-stub.h>
 #include <asm/mb-regs.h>
 
@@ -39,6 +42,9 @@ asmlinkage void ret_from_fork(void);
 
 #include <asm/pgalloc.h>
 
+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);
@@ -84,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();
                }
@@ -204,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) */
@@ -246,7 +254,7 @@ int copy_thread(int nr, unsigned long clone_flags,
 /*
  * sys_execve() executes a new program.
  */
-asmlinkage int sys_execve(char *name, char **argv, char **envp)
+asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp)
 {
        int error;
        char * filename;
@@ -368,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,
+              &current->thread.user->f,
+              sizeof(current->thread.user->f));
+       return 1;
+}