1. 25 9月, 2010 1 次提交
    • C
      arch/tile: remove dead code from intvec_32.S · ea44e06e
      Chris Metcalf 提交于
      This "bpt_code" instruction was killed off in our development line a while
      ago (the actual definition of bpt_code that is used is in kernel/traps.c)
      but I didn't push it for 2.6.36 because it seemed harmless and I didn't
      want to try to push more than absolutely necessary.
      
      However, we recently fixed a bug in our gcc that had been causing
      "-gdwarf2" not to be passed to the assembler, and passing this flag causes
      an erroneous assembler failure in the presence of code in a data section,
      sometimes.  While we'd like to track down the bug in the assembler,
      we'd also like to make sure 2.6.36 builds with the current toolchain,
      so I'm removing this dead code as well.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      ea44e06e
  2. 15 9月, 2010 4 次提交
  3. 18 8月, 2010 1 次提交
    • D
      Make do_execve() take a const filename pointer · d7627467
      David Howells 提交于
      Make do_execve() take a const filename pointer so that kernel_execve() compiles
      correctly on ARM:
      
      arch/arm/kernel/sys_arm.c:88: warning: passing argument 1 of 'do_execve' discards qualifiers from pointer target type
      
      This also requires the argv and envp arguments to be consted twice, once for
      the pointer array and once for the strings the array points to.  This is
      because do_execve() passes a pointer to the filename (now const) to
      copy_strings_kernel().  A simpler alternative would be to cast the filename
      pointer in do_execve() when it's passed to copy_strings_kernel().
      
      do_execve() may not change any of the strings it is passed as part of the argv
      or envp lists as they are some of them in .rodata, so marking these strings as
      const should be fine.
      
      Further kernel_execve() and sys_execve() need to be changed to match.
      
      This has been test built on x86_64, frv, arm and mips.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Tested-by: NRalf Baechle <ralf@linux-mips.org>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d7627467
  4. 14 8月, 2010 1 次提交
    • C
      arch/tile: extend syscall ABI to set r1 on return as well. · ba00376b
      Chris Metcalf 提交于
      Until now, the tile architecture ABI for syscall return has just been
      that r0 holds the return value, and an error is only signalled like it is
      for kernel code, with a negative small number.
      
      However, this means that in multiple places in userspace we end up writing
      the same three-cycle idiom that tests for a small negative number for
      error.  It seems cleaner to instead move that code into the kernel, and
      set r1 to hold zero on success or errno on failure; previously, r1 was
      just zeroed on return from the kernel (to avoid leaking kernel state).
      This way a single conditional branch after the syscall is sufficient
      to test for the failure case.  The number of cycles taken is the same,
      but the error-checking code is in just one place, so total code size is
      smaller, and random userspace syscall code is easier to understand.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      ba00376b
  5. 13 8月, 2010 5 次提交
  6. 17 7月, 2010 1 次提交
  7. 07 7月, 2010 5 次提交
    • C
    • 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: Shrink the tile-opcode files considerably. · 863fbac6
      Chris Metcalf 提交于
      The C file (tile-desc_{32,64}.c) was about 300KB before this change,
      and is now shrunk down to 100K.  The original file included support
      for BFD in the binutils toolchain, which is not necessary in the
      kernel; the kernel version only needs to include enough support to
      enable the single-stepper and backtracer.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      863fbac6
    • C
      arch/tile: Add driver to enable access to the user dynamic network. · 9f9c0382
      Chris Metcalf 提交于
      This network (the "UDN") connects all the cpus on the chip in a
      wormhole-routed dynamic network.  Subrectangles of the chip can
      be allocated by a "create" ioctl on /dev/hardwall, and then to access the
      UDN in that rectangle, tasks must perform an "activate" ioctl on that
      same file object after affinitizing themselves to a single cpu in
      the region.  Sending a wormhole-routed message that tries to leave
      that subrectangle causes all activated tasks to receive a SIGILL
      (just as they would if they tried to access the UDN without first
      activating themselves to a hardwall rectangle).
      
      The original submission of this code to LKML had the driver
      instantiated under /proc/tile/hardwall.  Now we just use a character
      device for this, conventionally /dev/hardwall.  Some futures planning
      for the TILE-Gx chip suggests that we may want to have other types of
      devices that share the general model of "bind a task to a cpu, then
      'activate' a file descriptor on a pseudo-device that gives access to
      some hardware resource".  As such, we are using a device rather
      than, for example, a syscall, to set up and activate this code.
      
      As part of this change, the compat_ptr() declaration was fixed and used
      to pass the compat_ioctl argument to the normal ioctl.  So far we limit
      compat code to 2GB, so the difference between zero-extend and sign-extend
      (the latter being correct, eventually) had been overlooked.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      9f9c0382
    • C
      arch/tile: Enable more sophisticated IRQ model for 32-bit chips. · fb702b94
      Chris Metcalf 提交于
      This model is based on the on-chip interrupt model used by the
      TILE-Gx next-generation hardware, and interacts much more cleanly
      with the Linux generic IRQ layer.
      
      The change includes modifications to the Tilera hypervisor, which
      are reflected in the hypervisor headers in arch/tile/include/arch/.
      Signed-off-by: NChris Metcalf <cmetcalf@tilera.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      fb702b94
  8. 07 6月, 2010 1 次提交
  9. 05 6月, 2010 2 次提交