Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / mips / kernel / binfmt_elfo32.c
index 97c5a1668e5347bb4a7668882931349cfdac08a6..7fdf1de0447f8e990d2874332a8dbbe433c99bce 100644 (file)
@@ -58,12 +58,6 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
 
 #include <asm/processor.h>
 
-/*
- * When this file is selected, we are definitely running a 64bit kernel.
- * So using the right regs define in asm/reg.h
- */
-#define WANT_COMPAT_REG_H
-
 /* These MUST be defined before elf.h gets included */
 extern void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs);
 #define ELF_CORE_COPY_REGS(_dest, _regs) elf32_core_copy_regs(_dest, _regs);
@@ -135,21 +129,21 @@ void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs)
 {
        int i;
 
-       for (i = 0; i < EF_R0; i++)
+       for (i = 0; i < MIPS32_EF_R0; i++)
                grp[i] = 0;
-       grp[EF_R0] = 0;
+       grp[MIPS32_EF_R0] = 0;
        for (i = 1; i <= 31; i++)
-               grp[EF_R0 + i] = (elf_greg_t) regs->regs[i];
-       grp[EF_R26] = 0;
-       grp[EF_R27] = 0;
-       grp[EF_LO] = (elf_greg_t) regs->lo;
-       grp[EF_HI] = (elf_greg_t) regs->hi;
-       grp[EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc;
-       grp[EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr;
-       grp[EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status;
-       grp[EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause;
-#ifdef EF_UNUSED0
-       grp[EF_UNUSED0] = 0;
+               grp[MIPS32_EF_R0 + i] = (elf_greg_t) regs->regs[i];
+       grp[MIPS32_EF_R26] = 0;
+       grp[MIPS32_EF_R27] = 0;
+       grp[MIPS32_EF_LO] = (elf_greg_t) regs->lo;
+       grp[MIPS32_EF_HI] = (elf_greg_t) regs->hi;
+       grp[MIPS32_EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc;
+       grp[MIPS32_EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr;
+       grp[MIPS32_EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status;
+       grp[MIPS32_EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause;
+#ifdef MIPS32_EF_UNUSED0
+       grp[MIPS32_EF_UNUSED0] = 0;
 #endif
 }
 
@@ -162,4 +156,15 @@ MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)");
 #undef TASK_SIZE
 #define TASK_SIZE TASK_SIZE32
 
+#undef cputime_to_timeval
+#define cputime_to_timeval cputime_to_compat_timeval
+static __inline__ void
+cputime_to_compat_timeval(const cputime_t cputime, struct compat_timeval *value)
+{
+       unsigned long jiffies = cputime_to_jiffies(cputime);
+
+       value->tv_usec = (jiffies % HZ) * (1000000L / HZ);
+       value->tv_sec = jiffies / HZ;
+}
+
 #include "../../../fs/binfmt_elf.c"