1. 04 7月, 2013 1 次提交
    • Z
      mips: remove savemaxmem parameter setup · db9ab97d
      Zhang Yanfei 提交于
      saved_max_pfn is used to know the amount of memory that the previous
      kernel used.  And for powerpc, we set saved_max_pfn by passing the kernel
      commandline parameter "savemaxmem=".
      
      The only user of saved_max_pfn in mips is read_oldmem interface.  Since we
      have removed read_oldmem, so we don't need this parameter anymore.
      Signed-off-by: NZhang Yanfei <zhangyanfei@cn.fujitsu.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Dave Hansen <dave@sr71.net>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      db9ab97d
  2. 01 7月, 2013 9 次提交
  3. 25 6月, 2013 1 次提交
    • J
      MIPS: Flush TLB handlers directly after writing them · a3d9086b
      Jonas Gorski 提交于
      When having enabled MIPS_PGD_C0_CONTEXT, trap_init() might call the
      generated tlbmiss_handler_setup_pgd before it was committed to memory,
      causing boot failures:
      
        trap_init()
         |- per_cpu_trap_init()
         |   |- TLBMISS_HANDLER_SETUP()
         |       |- tlbmiss_handler_setup_pgd()
         |- flush_tlb_handlers()
      
      To avoid this, move flush_tlb_handlers() into build_tlb_refill_handler()
      right after they were generated. We can do this as the cache handling is
      initialized just before creating the tlb handlers.
      
      This issue was introduced in 3d8bfdd0
      ("MIPS: Use C0_KScratch (if present) to hold PGD pointer.").
      Signed-off-by: NJonas Gorski <jogo@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Cc: Steven J. Hill <Steven.Hill@imgtec.com>
      Cc: Jayachandran C <jchandra@broadcom.com>
      Cc: David Daney <david.daney@cavium.com>
      Patchwork: https://patchwork.linux-mips.org/patch/5539/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a3d9086b
  4. 22 6月, 2013 3 次提交
  5. 19 6月, 2013 1 次提交
  6. 13 6月, 2013 3 次提交
  7. 11 6月, 2013 5 次提交
  8. 10 6月, 2013 1 次提交
  9. 06 6月, 2013 2 次提交
    • 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
    • Y
      MIPS: rtlx: Fix implicit declaration of function set_vi_handler() · 406b5ee2
      Yoichi Yuasa 提交于
      arch/mips/kernel/rtlx.c: In function 'rtlx_module_init':
      arch/mips/kernel/rtlx.c:523:3: error: implicit declaration of function 'set_vi_handler' [-Werror=implicit-function-declaration]
      Signed-off-by: NYoichi Yuasa <yuasa@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5340/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      406b5ee2
  10. 23 5月, 2013 1 次提交
  11. 22 5月, 2013 11 次提交
  12. 18 5月, 2013 2 次提交
    • T
      MIPS: Extract schedule_mfi info from __schedule · 5000653e
      Tony Wu 提交于
      schedule_mfi is supposed to be extracted from schedule(), and
      is used in thread_saved_pc and get_wchan.
      
      But, after optimization, schedule() is reduced to a sibling
      call to __schedule(), and no real frame info can be extracted.
      
      One solution is to compile schedule() with -fno-omit-frame-pointer
      and -fno-optimize-sibling-calls, but that will incur performance
      degradation.
      
      Another solution is to extract info from the real scheduler,
      __schedule, and this is the approache adopted here.
      
      This patch reads the __schedule address by either following
      the 'j' call in schedule if KALLSYMS is disabled or by using
      kallsyms_lookup_name to lookup __schedule if KALLSYMS is
      available, then, extracts schedule_mfi from __schedule frame info.
      
      This patch also fixes the "Can't analyze schedule() prologue"
      warning at boot time.
      Signed-off-by: NTony Wu <tung7970@gmail.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5237/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      5000653e
    • T
      MIPS: Fix sibling call handling in get_frame_info · e7438c4b
      Tony Wu 提交于
      Given a function, get_frame_info() analyzes its instructions
      to figure out frame size and return address. get_frame_info()
      works as follows:
      
      1. analyze up to 128 instructions if the function size is unknown
      2. search for 'addiu/daddiu sp,sp,-immed' for frame size
      3. search for 'sw ra,offset(sp)' for return address
      4. end search when it sees jr/jal/jalr
      
      This leads to an issue when the given function is a sibling
      call, example shown as follows.
      
      801ca110 <schedule>:
      801ca110:       8f820000        lw      v0,0(gp)
      801ca114:       8c420000        lw      v0,0(v0)
      801ca118:       080726f0        j       801c9bc0 <__schedule>
      801ca11c:       00000000        nop
      
      801ca120 <io_schedule>:
      801ca120:       27bdffe8        addiu   sp,sp,-24
      801ca124:       3c028022        lui     v0,0x8022
      801ca128:       afbf0014        sw      ra,20(sp)
      
      In this case, get_frame_info() cannot properly detect schedule's
      frame info, and eventually returns io_schedule's instead.
      
      This patch adds 'j' to the end search condition to workaround
      sibling call cases.
      Signed-off-by: NTony Wu <tung7970@gmail.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5236/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e7438c4b