1. 02 3月, 2011 3 次提交
    • C
      arch/tile: use extended assembly to inline __mb_incoherent() · 6c4d1126
      Chris Metcalf 提交于
      This avoids having to maintain an additional separate assembly
      file, and of course the inline is slightly more efficient as well.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      6c4d1126
    • C
      arch/tile: fix __ndelay etc to work better · 13371731
      Chris Metcalf 提交于
      The current implementations of __ndelay and __udelay call a hypervisor
      service to delay, but the hypervisor service isn't actually implemented
      very well, and the consensus is that Linux should handle figuring this
      out natively and not use a hypervisor service.
      
      By converting nanoseconds to cycles, and then spinning until the
      cycle counter reaches the desired cycle, we get several benefits:
      first, we are sensitive to the actual clock speed; second, we use
      less power by issuing a slow SPR read once every six cycles while
      we delay; and third, we properly handle the case of an interrupt by
      exiting at the target time rather than after some number of cycles.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      13371731
    • C
      arch/tile: catch up with section naming convention in 2.6.35 · 2cb82400
      Chris Metcalf 提交于
      The convention changed to, e.g., ".data..page_aligned".  This commit
      fixes the places in the tile architecture that were still using the
      old convention.  One tile-specific section (.init.page) was dropped
      in favor of just using an "aligned" attribute.
      
      Sam Ravnborg <sam@ravnborg.org> pointed out __PAGE_ALIGNED_BSS, etc.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      2cb82400
  2. 25 11月, 2010 1 次提交
    • C
      arch/tile: fix memchr() not to dereference memory for zero length · 3edabee2
      Chris Metcalf 提交于
      This change fixes a bug that memchr() will read the first word
      of the source even if the length is zero.  Ironically, the code
      was originally written with a test to avoid exactly this problem,
      but to make the code conform to Linux coding standards with all
      declarations preceding all statements, the first load from memory
      was moved up above that test as the initial value for a variable.
      
      The change just moves all the variable declarations to the top
      of the file, with no initializers, so that the test can also be
      at the top of the file.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      3edabee2
  3. 15 11月, 2010 1 次提交
    • C
      arch/tile: fix rwlock so would-be write lockers don't block new readers · 24f3f6b5
      Chris Metcalf 提交于
      This avoids a deadlock in the IGMP code where one core gets a read
      lock, another core starts trying to get a write lock (thus blocking
      new readers), and then the first core tries to recursively re-acquire
      the read lock.
      
      We still try to preserve some degree of balance by giving priority
      to additional write lockers that come along while the lock is held
      for write, so they can all complete quickly and return the lock to
      the readers.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      24f3f6b5
  4. 02 11月, 2010 1 次提交
  5. 16 10月, 2010 1 次提交
    • C
      arch/tile: minor whitespace/naming changes for string support files · 29507663
      Chris Metcalf 提交于
      Our internal process shares memcpy, memset, etc., with libc, and
      we did some minor tweaking as part of moving from uclibc to glibc,
      which is now reflected in the kernel versions of these files.
      
      There are no semantic changes in this commit, just whitespace
      (memcpy_32.S now properly uses tabs), naming (memmove.c instead
      of memmove_32.c, since TILE-Gx shares the file with TILEPro),
      and a couple of other minor tweaks.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      29507663
  6. 15 10月, 2010 1 次提交
  7. 06 10月, 2010 1 次提交
  8. 13 8月, 2010 1 次提交
    • C
      arch/tile: Various cleanups. · c745a8a1
      Chris Metcalf 提交于
      This change rolls up random cleanups not representing any actual bugs.
      
      - Remove a stale CONFIG_ value from the default tile_defconfig
      - Remove unused tns_atomic_xxx() family of methods from <asm/atomic.h>
      - Optimize get_order() using Tile's "clz" instruction
      - Fix a bad hypervisor upcall name (not currently used in Linux anyway)
      - Use __copy_in_user_inatomic() name for consistency, and export it
      - Export some additional hypervisor driver I/O upcalls and some homecache calls
      - Remove the obfuscating MEMCPY_TEST_WH64 support code
      - Other stray comment cleanups, #if 0 removal, etc.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      c745a8a1
  9. 07 7月, 2010 3 次提交
    • C
      arch/tile: Miscellaneous cleanup changes. · 0707ad30
      Chris Metcalf 提交于
      This commit is primarily changes caused by reviewing "sparse"
      and "checkpatch" output on our sources, so is somewhat noisy, since
      things like "printk() -> pr_err()" (or whatever) throughout the
      codebase tend to get tedious to read.  Rather than trying to tease
      apart precisely which things changed due to which type of code
      review, this commit includes various cleanups in the code:
      
      - sparse: Add declarations in headers for globals.
      - sparse: Fix __user annotations.
      - sparse: Using gfp_t consistently instead of int.
      - sparse: removing functions not actually used.
      - checkpatch: Clean up printk() warnings by using pr_info(), etc.;
        also avoid partial-line printks except in bootup code.
        - checkpatch: Use exposed structs rather than typedefs.
        - checkpatch: Change some C99 comments to C89 comments.
      
      In addition, a couple of minor other changes are rolled in
      to this commit:
      
      - Add support for a "raise" instruction to cause SIGFPE, etc., to be raised.
      - Remove some compat code that is unnecessary when we fully eliminate
        some of the deprecated syscalls from the generic syscall ABI.
      - Update the tile_defconfig to reflect current config contents.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      0707ad30
    • C
      arch/tile: Split the icache flush code off to a generic <arch> header. · c78095bd
      Chris Metcalf 提交于
      This code is used in other places in our system than in Linux, so
      to share it we now implement it as an inline function in our low-level
      <arch> headers, and instantiate it in one file in Linux's arch/tile/lib.
      The file is now cacheflush.c and is C code rather than the strangely-named
      and assembler-implemented __invalidate_icache.S.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      c78095bd
    • C
      arch/tile: Fix bug in support for atomic64_xx() ops. · 2db09827
      Chris Metcalf 提交于
      This wasn't properly tested until the perf-event subsystem started
      to get brought up under the tile architecture.
      
      The bug caused bogus atomic64_cmpxchg() values to be returned,
      among other things.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      2db09827
  10. 05 6月, 2010 1 次提交