1. 09 11月, 2012 1 次提交
  2. 19 7月, 2012 2 次提交
    • Y
      MIPS: Fix bug.h MIPS build regression · 3592c3cd
      Yoichi Yuasa 提交于
      Commit: 37778088 [bug.h: need linux/kernel.h
      for TAINT_WARN.] breaks all MIPS builds.
      
        CC      arch/mips/kernel/machine_kexec.o
      In file included from include/linux/kernel.h:20:0,
                       from include/asm-generic/bug.h:35,
                       from /home/yuasa/src/linux/kernel/git/linux-2.6/arch/mips/include/asm/bug.h:41,
                       from /home/yuasa/src/linux/kernel/git/linux-2.6/arch/mips/include/asm/bitops.h:20,
                       from include/linux/bitops.h:22,
                       from include/linux/signal.h:38,
                       from include/linux/elfcore.h:5,
                       from include/linux/kexec.h:60,
                       from arch/mips/kernel/machine_kexec.c:9:
      include/linux/log2.h: In function '__ilog2_u32':
      include/linux/log2.h:34:2: error: implicit declaration of function 'fls' [-Werror=implicit-function-declaration]
      include/linux/log2.h: In function '__ilog2_u64':
      include/linux/log2.h:42:2: error: implicit declaration of function 'fls64' [-Werror=implicit-function-declaration]
      include/linux/log2.h: In function '__roundup_pow_of_two':
      include/linux/log2.h:63:2: error: implicit declaration of function 'fls_long' [-Werror=implicit-function-declaration]
      In file included from include/linux/bitops.h:22:0,
                       from include/linux/signal.h:38,
                       from include/linux/elfcore.h:5,
                       from include/linux/kexec.h:60,
                       from arch/mips/kernel/machine_kexec.c:9:
      /home/yuasa/src/linux/kernel/git/linux-2.6/arch/mips/include/asm/bitops.h: At top level:
      /home/yuasa/src/linux/kernel/git/linux-2.6/arch/mips/include/asm/bitops.h:615:19: error: static declaration of 'fls' follows non-static declaration
      include/linux/log2.h:34:9: note: previous implicit declaration of 'fls' was here
      In file included from /home/yuasa/src/linux/kernel/git/linux-2.6/arch/mips/include/asm/bitops.h:651:0,
                       from include/linux/bitops.h:22,
                       from include/linux/signal.h:38,
                       from include/linux/elfcore.h:5,
                       from include/linux/kexec.h:60,
                       from arch/mips/kernel/machine_kexec.c:9:
      include/asm-generic/bitops/fls64.h:18:28: error: static declaration of 'fls64' follows non-static declaration
      include/linux/log2.h:42:9: note: previous implicit declaration of 'fls64' was here
      In file included from include/linux/signal.h:38:0,
                       from include/linux/elfcore.h:5,
                       from include/linux/kexec.h:60,
                       from arch/mips/kernel/machine_kexec.c:9:
      include/linux/bitops.h:160:24: error: conflicting types for 'fls_long'
      include/linux/log2.h:63:16: note: previous implicit declaration of 'fls_long' was here
      cc1: all warnings being treated as errors
      
      make[2]: *** [arch/mips/kernel/machine_kexec.o] Error 1
      Signed-off-by: NYoichi Yuasa <yuasa@linux-mips.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: yuasa@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: Linuxppc-dev <linuxppc-dev@ozlabs.org>
      Cc: Linux MIPS Mailing List <linux-mips@linux-mips.org>
      Cc: Linux-sh list <linux-sh@vger.kernel.org>
      Cc: Chris Zankel <chris@zankel.net>
      Patchwork: https://patchwork.linux-mips.org/patch/4000/Tested-by: NJohn Crispin <blogic@openwrt.org>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      3592c3cd
    • Y
      mips: fix bug.h build regression · 893a0574
      Yoichi Yuasa 提交于
      Commit 37778088 ("bug.h: need linux/kernel.h for TAINT_WARN.") broke
      all MIPS builds:
      
          CC      arch/mips/kernel/machine_kexec.o
        include/linux/log2.h: In function '__ilog2_u32':
        include/linux/log2.h:34:2: error: implicit declaration of function 'fls' [-Werror=implicit-function-declaration]
        include/linux/log2.h: In function '__ilog2_u64':
        include/linux/log2.h:42:2: error: implicit declaration of function 'fls64' [-Werror=implicit-function-declaration]
        ...
      Signed-off-by: NYoichi Yuasa <yuasa@linux-mips.org>
      Tested-by: NJohn Crispin <blogic@openwrt.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: David Daney <ddaney@caviumnetworks.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      893a0574
  3. 24 3月, 2011 3 次提交
    • A
      bitops: remove minix bitops from asm/bitops.h · 61f2e7b0
      Akinobu Mita 提交于
      minix bit operations are only used by minix filesystem and useless by
      other modules.  Because byte order of inode and block bitmaps is different
      on each architecture like below:
      
      m68k:
      	big-endian 16bit indexed bitmaps
      
      h8300, microblaze, s390, sparc, m68knommu:
      	big-endian 32 or 64bit indexed bitmaps
      
      m32r, mips, sh, xtensa:
      	big-endian 32 or 64bit indexed bitmaps for big-endian mode
      	little-endian bitmaps for little-endian mode
      
      Others:
      	little-endian bitmaps
      
      In order to move minix bit operations from asm/bitops.h to architecture
      independent code in minix filesystem, this provides two config options.
      
      CONFIG_MINIX_FS_BIG_ENDIAN_16BIT_INDEXED is only selected by m68k.
      CONFIG_MINIX_FS_NATIVE_ENDIAN is selected by the architectures which use
      native byte order bitmaps (h8300, microblaze, s390, sparc, m68knommu,
      m32r, mips, sh, xtensa).  The architectures which always use little-endian
      bitmaps do not select these options.
      
      Finally, we can remove minix bit operations from asm/bitops.h for all
      architectures.
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NGreg Ungerer <gerg@uclinux.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Andreas Schwab <schwab@linux-m68k.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Acked-by: NRalf Baechle <ralf@linux-mips.org>
      Acked-by: NPaul Mundt <lethal@linux-sh.org>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      61f2e7b0
    • A
      bitops: remove ext2 non-atomic bitops from asm/bitops.h · f312eff8
      Akinobu Mita 提交于
      As the result of conversions, there are no users of ext2 non-atomic bit
      operations except for ext2 filesystem itself.  Now we can put them into
      architecture independent code in ext2 filesystem, and remove from
      asm/bitops.h for all architectures.
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Jan Kara <jack@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f312eff8
    • A
      bitops: introduce little-endian bitops for most architectures · 861b5ae7
      Akinobu Mita 提交于
      Introduce little-endian bit operations to the big-endian architectures
      which do not have native little-endian bit operations and the
      little-endian architectures.  (alpha, avr32, blackfin, cris, frv, h8300,
      ia64, m32r, mips, mn10300, parisc, sh, sparc, tile, x86, xtensa)
      
      These architectures can just include generic implementation
      (asm-generic/bitops/le.h).
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Matthew Wilcox <willy@debian.org>
      Cc: Grant Grundler <grundler@parisc-linux.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Acked-by: NHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
      Acked-by: N"H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      861b5ae7
  4. 30 10月, 2010 1 次提交
    • R
      MIPS: Get rid of branches to .subsections. · 7837314d
      Ralf Baechle 提交于
      It was a nice optimization - on paper at least.  In practice it results in
      branches that may exceed the maximum legal range for a branch.  We can
      fight that problem with -ffunction-sections but -ffunction-sections again
      is incompatible with -pg used by the function tracer.
      
      By rewriting the loop around all simple LL/SC blocks to C we reduce the
      amount of inline assembler and at the same time allow GCC to often fill
      the branch delay slots with something sensible or whatever else clever
      optimization it may have up in its sleeve.
      
      With this optimization gone we also no longer need -ffunction-sections,
      so drop it.
      
      This optimization was originally introduced in 2.6.21, commit
      5999eca25c1fd4b9b9aca7833b04d10fe4bc877d (linux-mips.org) rsp.
      f65e4fa8 (kernel.org).
      
      Original fix for the issues which caused me to pull this optimization by
      Paul Gortmaker <paul.gortmaker@windriver.com>.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      7837314d
  5. 05 8月, 2010 1 次提交
  6. 27 2月, 2010 1 次提交
  7. 18 9月, 2009 1 次提交
  8. 14 5月, 2009 1 次提交
  9. 30 10月, 2008 1 次提交
  10. 11 10月, 2008 1 次提交
  11. 20 7月, 2008 1 次提交
    • R
      [MIPS] Tinker with constraints in <asm/atomic.h> to fix build error. · d6d8a463
      Ralf Baechle 提交于
      [...]
        CC      init/main.o
      include/asm/bitops.h: In function `start_kernel':
      include/asm/bitops.h:76: warning: asm operand 2 probably doesn't match
      constraints
      include/asm/bitops.h:76: warning: asm operand 2 probably doesn't match
      constraints
      include/asm/bitops.h:76: warning: asm operand 2 probably doesn't match
      constraints
      include/asm/bitops.h:76: error: impossible constraint in `asm'
      include/asm/bitops.h:76: error: impossible constraint in `asm'
      include/asm/bitops.h:76: error: impossible constraint in `asm'
      make[1]: *** [init/main.o] Error 1
      [...]
      
      The build error is caused by the ages old gcc bug where gcc at the time of
      analyzing the constraints is unable to figure out that an "i" constraint
      actually can be satisfied and thus will abort unless an "r" is added to
      the constraint.  For the actual code generation gcc will only ever use the
      "i" constraint.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      d6d8a463
  12. 16 7月, 2008 1 次提交
    • D
      [MIPS] Fix asm constraints for 'ins' instructions. · 94daeb90
      David Daney 提交于
      The third operand to 'ins' must be a constant int, not a register.
      
      [Ralf: The bug was actually intensional.  Some versions used to throw an
      error under certain circumstances for code like:
      
      static inline void f(unsigned nr, unsigned *p)
      {
      	unsigned short bit = nr & 5;
      
      	if (__builtin_constant_p(bit)) {
      		__asm__ __volatile__ ("  foo %0, %1" : "=m" (*p) : "i" (bit));
        	} else {
      		/* Do something else. */
      	}
      }
      
      because gcc was not able to figure out that the "i" constraint was possibly
      at the early stage when the constraint are getting verified.  The solution
      was using "ri" instead of "i".  The "ri" would keep gcc happy but in the
      end for code generation always the "i" constraint would be satisfied.  The
      problem afair originally appeared in the i386 io.h and also hit it's mips
      equivalent.  From there the workaround spread to many of the inline
      assembler functions.]
      Signed-off-by: NDavid Daney <ddaney@avtrex.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      94daeb90
  13. 12 5月, 2008 2 次提交
  14. 27 4月, 2008 1 次提交
  15. 20 10月, 2007 1 次提交
  16. 19 10月, 2007 3 次提交
    • N
      mips: lock bitops · 728697cd
      Nick Piggin 提交于
      mips can avoid one mb when acquiring a lock with test_and_set_bit_lock.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      728697cd
    • N
      mips: fix bitops · c8f30ae5
      Nick Piggin 提交于
      Documentation/atomic_ops.txt defines these primitives must contain a memory
      barrier both before and after their memory operation.  This is consistent with
      the atomic ops implementation on mips.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c8f30ae5
    • N
      bitops: introduce lock ops · 26333576
      Nick Piggin 提交于
      Introduce test_and_set_bit_lock / clear_bit_unlock bitops with lock semantics.
      Convert all architectures to use the generic implementation.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Acked-By: NDavid Howells <dhowells@redhat.com>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Cc: Bryan Wu <bryan.wu@analog.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Greg Ungerer <gerg@uclinux.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Matthew Wilcox <willy@debian.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
      Cc: Richard Curnow <rc@rc0.org.uk>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      26333576
  17. 12 10月, 2007 1 次提交
  18. 21 7月, 2007 1 次提交
  19. 27 6月, 2007 1 次提交
  20. 12 6月, 2007 1 次提交
  21. 17 3月, 2007 1 次提交
  22. 07 3月, 2007 1 次提交
  23. 19 2月, 2007 1 次提交
  24. 14 2月, 2007 1 次提交
    • R
      [MIPS] Improve branch prediction in ll/sc atomic operations. · f65e4fa8
      Ralf Baechle 提交于
      Now that finally all supported versions of binutils have functioning
      support for .subsection use .subsection to tweak the branch prediction
      
      I did not modify the R10000 errata variants because it seems unclear if
      this will invalidate the workaround which actually relies on the cheesy
      prediction of branch likely to cause a misspredict if the sc was
      successful.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      f65e4fa8
  25. 05 12月, 2006 1 次提交
  26. 30 11月, 2006 2 次提交
  27. 14 7月, 2006 1 次提交
  28. 27 4月, 2006 1 次提交
  29. 26 4月, 2006 1 次提交
  30. 27 3月, 2006 2 次提交
  31. 07 2月, 2006 1 次提交
  32. 04 1月, 2006 1 次提交