03 Apr, 2012

1 commit

  • Fix a long-standing bug in the stack backtracer where we would print
    garbage to the console instead of kernel function names, if the kernel
    wasn't built with symbol support (e.g. mboot).

    Make sure to tag every line of userspace backtrace output if we actually
    have the mmap_sem, since that way if there's no tag, we know that it's
    because we couldn't trylock the semaphore.

    Stop doing a TLB flush and examining page tables during backtrace.
    Instead, just trust that __copy_from_user_inatomic() will properly fault
    and return a failure, which it should do in all cases.

    Fix a latent bug where the backtracer would directly examine a signal
    context in user space, rather than copying it safely to kernel memory
    first. This meant that a race with another thread could potentially
    have caused a kernel panic.

    Guard against unaligned sp when trying to restart backtrace at an
    interrupt or signal handler point in the kernel backtracer.

    Report kernel symbolic information for the call instruction rather
    than for the following instruction. We still report the actual numeric
    address corresponding to the instruction after the call, for the sake
    of consistency with the normal expectations for stack backtracers.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

02 Apr, 2012

1 commit

  • Commit bd119c69239322caafdb64517a806037d0d0c70a

    "Disintegrate asm/system.h for Tile"

    created the asm/switch_to.h file, but did not add an include
    of it to all its users.

    Also, commit b4816afa3986704d1404fc48e931da5135820472

    "Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h"

    introduced the concept of asm/cmpxchg.h but the tile arch
    never got one. Fork the cmpxchg content out of the asm/atomic.h
    file to create one.

    Acked-by: David Howells
    Signed-off-by: Paul Gortmaker
    Signed-off-by: Chris Metcalf

    Paul Gortmaker
     

03 May, 2011

1 commit

  • This change is the result of some work to make the backtrace code more
    shareable between kernel, libc, and gdb.

    For the kernel, some good effects are to eliminate the hacky
    "VirtualAddress" typedef in favor of "unsigned long", to eliminate a
    bunch of spurious kernel doc comments, to remove the dead "bt_read_memory"
    function, and to use "__tilegx__" in #ifdefs instead of "TILE_CHIP".

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

02 Mar, 2011

1 commit

  • The first is that we were using an incorrect hand-rolled variant
    of __kernel_text_address() which didn't handle module PCs. We now
    just use the standard API.

    The second was that we weren't accounting for the three-level
    page table when we were trying to pre-verify the addresses on
    the 64-bit TILE-Gx processor; we now do that correctly.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

15 Oct, 2010

1 commit


15 Sep, 2010

1 commit

  • Rather than just using pt_regs, it now contains the actual saved
    state explicitly, similar to pt_regs. By doing it this way, we
    provide a cleaner API for userspace (or equivalently, we avoid the
    need for libc to provide its own definition of sigcontext).

    While we're at it, move PT_FLAGS_xxx to where they are not visible
    from userspace. And always pass siginfo and mcontext to signal
    handlers, even if they claim they don't need it, since sometimes
    they actually try to use it anyway in practice.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

13 Aug, 2010

1 commit

  • This functionality was stubbed out until recently. Now we support our
    normal backtracing API on TILE-Gx as well as on TILE64/TILEPro.
    This change includes a tweak to the instruction encoding caused by
    adding addxli for compat mode.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

07 Jul, 2010

1 commit

  • 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: Chris Metcalf
    Acked-by: Arnd Bergmann

    Chris Metcalf
     

05 Jun, 2010

1 commit

  • This change is the core kernel support for TILEPro and TILE64 chips.
    No driver support (except the console driver) is included yet.

    This includes the relevant Linux headers in asm/; the low-level
    low-level "Tile architecture" headers in arch/, which are
    shared with the hypervisor, etc., and are build-system agnostic;
    and the relevant hypervisor headers in hv/.

    Signed-off-by: Chris Metcalf
    Acked-by: Arnd Bergmann
    Acked-by: FUJITA Tomonori
    Reviewed-by: Paul Mundt

    Chris Metcalf