1. 02 8月, 2014 1 次提交
  2. 31 7月, 2014 1 次提交
  3. 14 1月, 2014 1 次提交
    • P
      MIPS: Support for 64-bit FP with O32 binaries · 597ce172
      Paul Burton 提交于
      CPUs implementing MIPS32 R2 may include a 64-bit FPU, just as MIPS64 CPUs
      do. In order to preserve backwards compatibility a 64-bit FPU will act
      like a 32-bit FPU (by accessing doubles from the least significant 32
      bits of an even-odd pair of FP registers) when the Status.FR bit is
      zero, again just like a mips64 CPU. The standard O32 ABI is defined
      expecting a 32-bit FPU, however recent toolchains support use of a
      64-bit FPU from an O32 MIPS32 executable. When an ELF executable is
      built to use a 64-bit FPU a new flag (EF_MIPS_FP64) is set in the ELF
      header.
      
      With this patch the kernel will check the EF_MIPS_FP64 flag when
      executing an O32 binary, and set Status.FR accordingly. The addition
      of O32 64-bit FP support lessens the opportunity for optimisation in
      the FPU emulator, so a CONFIG_MIPS_O32_FP64_SUPPORT Kconfig option is
      introduced to allow this support to be disabled for those that don't
      require it.
      
      Inspired by an earlier patch by Leonid Yegoshin, but implemented more
      cleanly & correctly.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: Paul Burton <paul.burton@imgtec.com>
      Patchwork: https://patchwork.linux-mips.org/patch/6154/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      597ce172
  4. 06 6月, 2013 1 次提交
    • R
      MIPS: Compat: Fix cputime_to_timeval() arguments in compat binfmt_elf. · 7b741aa4
      Ralf Baechle 提交于
      cputime_to_timeval() takes a struct timeval *as its second argument but
      a struct compat_timeval * will be passed resulting in:
      
        CC      arch/mips/kernel/binfmt_elfn32.o
      In file included from arch/mips/kernel/binfmt_elfn32.c:122:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c: In function ‘fill_prstatus’:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1330:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfn32.c:55:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfn32.c:122:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1331:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfn32.c:55:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfn32.c:122:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1336:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfn32.c:55:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfn32.c:122:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1337:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfn32.c:55:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfn32.c:122:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1339:2: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfn32.c:55:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfn32.c:122:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1340:2: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfn32.c:55:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
        AS      arch/mips/kernel/scall64-n32.o
        CC      arch/mips/kernel/signal_n32.o
        CC      arch/mips/kernel/binfmt_elfo32.o
      In file included from arch/mips/kernel/binfmt_elfo32.c:165:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c: In function ‘fill_prstatus’:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1330:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfo32.c:78:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfo32.c:165:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1331:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfo32.c:78:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfo32.c:165:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1336:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfo32.c:78:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfo32.c:165:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1337:3: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfo32.c:78:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfo32.c:165:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1339:2: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfo32.c:78:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      In file included from arch/mips/kernel/binfmt_elfo32.c:165:0:
      arch/mips/kernel/../../../fs/binfmt_elf.c:1340:2: warning: passing argument 2 of ‘cputime_to_timeval’ from incompatible pointer type [enabled by default]
      In file included from include/asm-generic/cputime.h:12:0,
                       from /home/ralf/src/linux/linux-mips/arch/mips/include/asm/cputime.h:4,
                       from include/linux/sched.h:28,
                       from include/linux/ptrace.h:5,
                       from include/uapi/linux/elfcore.h:7,
                       from include/linux/elfcore.h:7,
                       from arch/mips/kernel/binfmt_elfo32.c:78:
      include/asm-generic/cputime_nsecs.h:92:91: note: expected ‘struct timeval *’ but argument is of type ‘struct compat_timeval *’
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      7b741aa4
  5. 08 5月, 2013 1 次提交
  6. 01 2月, 2013 1 次提交
  7. 03 7月, 2009 1 次提交
    • Y
      MIPS: 64-bit: Fix o32 core dump · cad9bc69
      Yong Zhang 提交于
      If an o32 process generates a core dump on a 64 bit kernel, the core file
      will not be correctly recognized. This is because ELF_CORE_COPY_REGS and
      ELF_CORE_COPY_TASK_REGS are not correctly defined for o32 and will use
      the default register set which would be CONFIG_64BIT in asm/elf.h.
      
      So we'll switch to use the right register defines in this situation by
      checking for WANT_COMPAT_REG_H and use the right defines of
      ELF_CORE_COPY_REGS and ELF_CORE_COPY_TASK_REGS.
      
      [Ralf: made ELF_CORE_COPY_TASK_REGS() bullet-proof against funny arguments.]
      Signed-off-by: NYong Zhang <yong.zhang@windriver.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      cad9bc69
  8. 01 5月, 2008 1 次提交
    • R
      remove div_long_long_rem · f8bd2258
      Roman Zippel 提交于
      x86 is the only arch right now, which provides an optimized for
      div_long_long_rem and it has the downside that one has to be very careful that
      the divide doesn't overflow.
      
      The API is a little akward, as the arguments for the unsigned divide are
      signed.  The signed version also doesn't handle a negative divisor and
      produces worse code on 64bit archs.
      
      There is little incentive to keep this API alive, so this converts the few
      users to the new API.
      Signed-off-by: NRoman Zippel <zippel@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: john stultz <johnstul@us.ibm.com>
      Cc: Christoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f8bd2258
  9. 03 2月, 2008 1 次提交
  10. 12 10月, 2007 1 次提交
  11. 08 12月, 2006 1 次提交
  12. 22 2月, 2006 1 次提交
  13. 30 10月, 2005 2 次提交
  14. 05 9月, 2005 1 次提交
  15. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4