1. 31 1月, 2013 1 次提交
    • S
      mips: Move __virt_addr_valid() to a place for MIPS 64 · 196897a2
      Steven Rostedt 提交于
      Commit d3ce8843 "MIPS: Fix modpost error in modules attepting to use
      virt_addr_valid()" moved __virt_addr_valid() from a macro in a header
      file to a function in ioremap.c. But ioremap.c is only compiled for MIPS
      32, and not for MIPS 64.
      
      When compiling for my yeeloong2, which supposedly supports hibernation,
      which compiles kernel/power/snapshot.c which calls virt_addr_valid(), I
      got this error:
      
        LD      init/built-in.o
      kernel/built-in.o: In function `memory_bm_free':
      snapshot.c:(.text+0x4c9c4): undefined reference to `__virt_addr_valid'
      snapshot.c:(.text+0x4ca58): undefined reference to `__virt_addr_valid'
      kernel/built-in.o: In function `snapshot_write_next':
      (.text+0x4e44c): undefined reference to `__virt_addr_valid'
      kernel/built-in.o: In function `snapshot_write_next':
      (.text+0x4e890): undefined reference to `__virt_addr_valid'
      make[1]: *** [vmlinux] Error 1
      make: *** [sub-make] Error 2
      
      I suspect that __virt_addr_valid() is fine for mips 64. I moved it to
      mmap.c such that it gets compiled for mips 64 and 32.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4842/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      196897a2
  2. 29 12月, 2012 2 次提交
  3. 27 12月, 2012 1 次提交
  4. 14 12月, 2012 4 次提交
  5. 12 12月, 2012 4 次提交
  6. 04 12月, 2012 1 次提交
    • D
      MIPS: Avoid mcheck by flushing page range in huge_ptep_set_access_flags() · ac53c4fc
      David Daney 提交于
      Problem:
      
      1) Huge page mapping of anonymous memory is initially invalid.  Will be
         faulted in by copy-on-write mechanism.
      
      2) Userspace attempts store at the end of the huge mapping.
      
      3) TLB Refill exception handler fill TLB with a normal (4K sized)
         invalid page at the end of the huge mapping virtual address range.
      
      4) Userspace restarted, and re-attempts the store at the end of the
         huge mapping.
      
      5) Page from #3 is invalid, we get a fault and go to the hugepage
         fault handler.  This tries to map a huge page and calls
         huge_ptep_set_access_flags() to install the mapping.
      
      6) We just call the generic ptep_set_access_flags() to set up the page
         tables, but the flush there assumes a normal (4K sized) page and
         only tries to flush the first part of the huge page virtual address
         out of the TLB, since the existing entry from step #3 doesn't
         conflict, nothing is flushed.
      
      7) We attempt to load the mapping into the TLB, but because it
         conflicts with the entry from step #3, we get a Machine Check
         exception.
      
      The fix: Flush the entire rage covered by the huge page in
      huge_ptep_set_access_flags(), and remove the optimization in
      local_flush_tlb_range() so that the flush actually does the correct
      thing.
      Signed-off-by: NDavid Daney <david.daney@cavium.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: Hillf Danton <dhillf@gmail.com>
      Patchwork: https://patchwork.linux-mips.org/patch/4661/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      (cherry picked from commit dd617f258cc39d36be26afee9912624a2d23112c)
      ac53c4fc
  7. 26 11月, 2012 2 次提交
    • R
      MIPS: tlbex: Better debug output. · a2c763e0
      Ralf Baechle 提交于
      Pgtable bits are assigned dynamically depending on processor feature and
      statically based on kernel configuration.  To make sense out of the
      disassembled TLB exception handlers a list of the actual assignments
      used for a particular configuration and hardware setup can be very useful.
      
      Output the actual TLB exception handlers in a format that simplifies their
      post processsing from dmesg output.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a2c763e0
    • R
      MIPS: Remove R5000A. · fb2b1dba
      Ralf Baechle 提交于
      From a software perspective R5000 and R5000A are the same thing which is
      why the symbol CPU_R5000A never got used, so finally delete it.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      fb2b1dba
  8. 09 11月, 2012 2 次提交
    • S
      MIPS: Move processing of coherency kernel parameters earlier · b5b64f2b
      Shane McDonald 提交于
      Commit 97ce2c88 (jump-label: initialize
      jump-label subsystem much earlier) caused MIPS to break, so this was
      resolved with commit 6650df3c (MIPS:
      Move cache setup to setup_arch().).  Unfortunately, after this commit,
      the coherency kernel parameters, cca and coherentio, are no longer
      processed before their values are used.
      
      This patch fixes this problem by marking them as early_param, which
      results in them being processed before they are needed.
      Signed-off-by: NShane McDonald <mcdonald.shane@gmail.com>
      Acked-by: NDavid Daney <david.daney@cavium.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Patchwork: http://patchwork.linux-mips.org/patch/3961Signed-off-by: NJohn Crispin <blogic@openwrt.org>
      b5b64f2b
    • K
      MIPS: tlbex: Fix section mismatches · f151f3b9
      Kevin Cernekee 提交于
      The new functions introduced in commit 02a54177 (MIPS: tlbex: Deal with
      re-definition of label) should be marked __cpuinit, to eliminate a
      warning that can pop up when CONFIG_EXPORT_UASM is disabled:
      
            LD      arch/mips/mm/built-in.o
          WARNING: arch/mips/mm/built-in.o(.text+0x2a4c): Section mismatch in reference from the function uasm_bgezl_hazard() to the function .cpuinit.text:uasm_il_bgezl()
          The function uasm_bgezl_hazard() references
          the function __cpuinit uasm_il_bgezl().
          This is often because uasm_bgezl_hazard lacks a __cpuinit
          annotation or the annotation of uasm_il_bgezl is wrong.
      
          WARNING: arch/mips/mm/built-in.o(.text+0x2a68): Section mismatch in reference from the function uasm_bgezl_label() to the function .cpuinit.text:uasm_build_label()
          The function uasm_bgezl_label() references
          the function __cpuinit uasm_build_label().
          This is often because uasm_bgezl_label lacks a __cpuinit
          annotation or the annotation of uasm_build_label is wrong.
      
      (This warning might not occur if the function was inlined.)
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Patchwork: http://patchwork.linux-mips.org/patch/4517Signed-off-by: NJohn Crispin <blogic@openwrt.org>
      f151f3b9
  9. 17 10月, 2012 3 次提交
    • R
      MIPS: hugetlbfs: Fix hazard between tlb write and pagemask restoration. · fb944c9b
      Ralf Baechle 提交于
      On some CPU the write to pagemask might complete before the TLB write
      instruction reads from the pagemask register.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      fb944c9b
    • R
      MIPS: R5000: Fix TLB hazard handling. · 359187d6
      Ralf Baechle 提交于
      R5000 and the Nevada CPUs (RM5230, RM5231, RM5260, RM5261, RM5270 and
      RM5271) are basically the same CPU core and all are documented to require
      two instructions separating a write to c0_pagemask, c0_entryhi, c0_entrylo0,
      c0_entrylo1 or c0_index.
      
      So far we were only providing on cycle before / after a TLBR/TLBWI
      for R5000 but 3 cycles before and 1 cycles after for the Nevadas.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      359187d6
    • R
      MIPS: tlbex: Deal with re-definition of label · 02a54177
      Ralf Baechle 提交于
      The microassembler used in tlbex.c does not notice if a label is redefined
      resulting in relocations against such labels silently missrelocated.
      The issues exists since commit add6eb04776db4189ea89f596cbcde31b899be9d
      [Synthesize TLB exception handlers at runtime.] in 2.6.10 and went unnoticed
      for so long because the relocations for the affected branches got computed
      to do something *almost* sensible.
      
      The issue affects R4000, R4400, QED/IDT RM5230, RM5231, RM5260, RM5261,
      RM5270 and RM5271 processors.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      02a54177
  10. 11 10月, 2012 3 次提交
  11. 09 10月, 2012 1 次提交
  12. 14 9月, 2012 5 次提交
  13. 27 8月, 2012 1 次提交
  14. 23 8月, 2012 1 次提交
  15. 23 7月, 2012 1 次提交
  16. 19 7月, 2012 2 次提交
  17. 07 7月, 2012 1 次提交
  18. 17 5月, 2012 2 次提交
  19. 29 3月, 2012 2 次提交
    • R
      remove references to cpu_*_map in arch/ · 0b5f9c00
      Rusty Russell 提交于
      This has been obsolescent for a while; time for the final push.
      
      In adjacent context, replaced old cpus_* with cpumask_*.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Acked-by: David S. Miller <davem@davemloft.net> (arch/sparc)
      Acked-by: Chris Metcalf <cmetcalf@tilera.com> (arch/tile)
      Cc: user-mode-linux-devel@lists.sourceforge.net
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: linux-hexagon@vger.kernel.org
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Helge Deller <deller@gmx.de>
      Cc: sparclinux@vger.kernel.org
      0b5f9c00
    • D
      Disintegrate asm/system.h for MIPS · b81947c6
      David Howells 提交于
      Disintegrate asm/system.h for MIPS.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NRalf Baechle <ralf@linux-mips.org>
      cc: linux-mips@linux-mips.org
      b81947c6
  20. 28 3月, 2012 1 次提交