03 Mar, 2010

23 commits


06 Feb, 2010

1 commit

  • Better dwarf2 unwind information is a good thing, it allows better
    debugging with kgdb and crash and helps systemtap.

    Commit 003086497f07f7f1e67c0c295e261740f822b377 ("Build with
    -fno-dwarf2-cfi-asm") disabled some CFI information globally to work
    around a module loader bug on powerpc.

    But this disables the better unwind tables for all architectures, not just
    powerpc. Move the workaround to powerpc and also add a suitable comment
    that's it really a workaround.

    This improves dwarf2 unwind tables on x86 at least.

    Signed-off-by: Andi Kleen
    Cc: Kyle McMartin
    Signed-off-by: Andrew Morton
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Michal Marek

    Andi Kleen
     

02 Feb, 2010

1 commit

  • Just a small change to a couple of scripts to go from

    #!/usr/bin/env python

    to

    #!/usr/bin/python

    This shouldn't effect anyone, unless they don't install python there.

    In preparation for python3, Fedora is doing a big push to change the scripts
    to use the system python. This allows developers to put the python3 in
    their path without fear of breaking existing scripts.

    Now I am pretty sure anyone using python3 for testing purposes will probably
    not run any of the scripts I changed, but Fedora has this automated tool
    that checks for this stuff so I thought I would try to push it upstream.

    Signed-off-by: Don Zickus
    Acked-by: WANG Cong
    Acked-by: Jarod Wilson
    Signed-off-by: Michal Marek

    Don Zickus
     

30 Jan, 2010

3 commits

  • Here are the sparc bits to remove TIF_ABI_PENDING now that
    set_personality() is called at the appropriate place in exec.

    Signed-off-by: David S. Miller
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    David Miller
     
  • Now that the previous commit made it possible to do the personality
    setting at the point of no return, we do just that for ELF binaries.
    And suddenly all the reasons for that insane TIF_ABI_PENDING bit go
    away, and we can just make SET_PERSONALITY() just do the obvious thing
    for a 32-bit compat process.

    Everything becomes much more straightforward this way.

    Signed-off-by: H. Peter Anvin
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    H. Peter Anvin
     
  • 'flush_old_exec()' is the point of no return when doing an execve(), and
    it is pretty badly misnamed. It doesn't just flush the old executable
    environment, it also starts up the new one.

    Which is very inconvenient for things like setting up the new
    personality, because we want the new personality to affect the starting
    of the new environment, but at the same time we do _not_ want the new
    personality to take effect if flushing the old one fails.

    As a result, the x86-64 '32-bit' personality is actually done using this
    insane "I'm going to change the ABI, but I haven't done it yet" bit
    (TIF_ABI_PENDING), with SET_PERSONALITY() not actually setting the
    personality, but just the "pending" bit, so that "flush_thread()" can do
    the actual personality magic.

    This patch in no way changes any of that insanity, but it does split the
    'flush_old_exec()' function up into a preparatory part that can fail
    (still called flush_old_exec()), and a new part that will actually set
    up the new exec environment (setup_new_exec()). All callers are changed
    to trivially comply with the new world order.

    Signed-off-by: H. Peter Anvin
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

29 Jan, 2010

5 commits


28 Jan, 2010

6 commits

  • The MIPS processor is limited to 64 external interrupt sources. Using a
    greater number without IRQ sharing requires reading platform-specific
    registers. On such platforms, reading the IntCtl register to determine
    which interrupt corresponds to a timer interrupt will not work.

    On MIPSR2 systems there is a solution - the TI bit in the Cause register,
    specifically indicates that a timer interrupt has occured. This patch uses
    that bit to detect interrupts for MIPSR2 processors, which may be expected
    to work regardless of how the timer interrupt may be routed in the hardware.

    Signed-off-by: David VomLehn (dvomlehn@cisco.com)
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/804/
    Signed-off-by: Ralf Baechle

    David VomLehn
     
  • Pre-compute addresses for the basic ASIC registers. This speeds up access
    and allows memory for unused configurations to be freed. In addition,
    uninitialized register addresses will be returned as NULL to catch bad
    usage quickly.

    Signed-off-by: David VomLehn
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/806/
    Signed-off-by: Ralf Baechle

    David VomLehn
     
  • POSIX requires $(()) arithmetic in sh only to have long
    arithmetic so on 32-bit sh binaries might do only 32-bit arithmetic but
    the arithmetic done in arch/mips/boot/compressed/Makefile needs 64-bit.

    I play with the AR7 platform, so VMLINUX_LOAD_ADDRESS is
    0xffffffff94100000, and for an example 4MiB kernel
    VMLINUZ_LOAD_ADDRESS is made out to be:
    ----
    alex@berk:~$ bash -c 'printf "%x\n" $((0xffffffff94100000 + 0x400000))'
    ffffffff94500000
    alex@berk:~$ dash -c 'printf "%x\n" $((0xffffffff94100000 + 0x400000))'
    80000000003fffff
    ----

    The former is obviously correct whilst the later breaks things royally.

    Fortunately working with only the lower 32bit's works for both bash and
    dash:
    ----
    $ bash -c 'printf "%x\n" $((0x94100000 + 0x400000))'
    94500000
    $ dash -c 'printf "%x\n" $((0x94100000 + 0x400000))'
    94500000
    ----

    So, we can split the original 64bit string to two parts, and only
    calculate the low 32bit part, which is big enough (1GiB kernel sizes
    anyone?) for a normal Linux kernel image file, now, we calculate the
    VMLINUZ_LOAD_ADDRESS like this:

    1. if present, append top 32bit of VMLINUX_LOAD_ADDRESS" as a prefix
    2. get the sum of the low 32bit of VMLINUX_LOAD_ADDRESS + VMLINUX_SIZE

    This patch fixes vmlinuz kernel builds on systems where only a
    32bit-only math shell is available.

    Patch Changelog:
    Version 2
    - simplified method by using 'expr' for 'substr' and making it work
    with dash once again
    Version 1
    - Revert the removals of '-n "$(VMLINUX_SIZE)"' to avoid the error
    of "make clean"
    - Consider more cases of the VMLINUX_LOAD_ADDRESS
    Version 0
    - initial release

    Signed-off-by: Alexander Clouter
    Acked-by: Wu Zhangjin
    Patchwork: http://patchwork.linux-mips.org/patch/861/
    Signed-off-by: Ralf Baechle

    Alexander Clouter
     
  • The necessary changes to the x86 Kconfig and boot/compressed to allow the
    use of this new compression method.

    Signed-off-by: Wu Zhangjin
    Cc: linux-mips@linux-mips.org
    Cc: Sergei Shtylyov
    Patchwork: http://patchwork.linux-mips.org/patch/857/
    Signed-off-by: Ralf Baechle

    Wu Zhangjin
     
  • Russell King
     
  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] fix single stepped svcs with TRACE_IRQFLAGS=y
    [S390] zcrypt: Do not remove coprocessor for error 8/72
    [S390] sclp_vt220: set initial terminal window size
    [S390] use set_current_state in sigsuspend
    [S390] irqflags: add missing types.h include
    [S390] dasd: fix possible NULL pointer errors

    Linus Torvalds
     

27 Jan, 2010

1 commit