17 Feb, 2010

3 commits


15 Feb, 2010

1 commit

  • This follows the parisc change to ensure that tracehook_signal_handler()
    is aware of when we are single-stepping in order to ptrace_notify()
    appropriately. While this was implemented for 32-bit SH, sh64 neglected
    to make use of TIF_SINGLESTEP when it was folded in with the 32-bit code,
    resulting in ptrace_notify() never being called.

    As sh64 uses all of the other abstractions already, this simply plugs in
    the thread flag in the appropriate enable/disable paths and fixes up the
    tracehook notification accordingly. With this in place, sh64 is brought
    in line with what 32-bit is already doing.

    Reported-by: Mike Frysinger
    Signed-off-by: Paul Mundt

    Paul Mundt
     

13 Feb, 2010

2 commits

  • Mike Frysinger pointed out that calling tracehook_signal_handler with
    stepping=0 missed testing the thread flags, resulting in not calling
    ptrace_notify. Fix this by testing if we're single stepping or branch
    stepping and setting the flag accordingly.

    Tested, seems to work.

    Reported-by: Mike Frysinger
    Signed-off-by: Kyle McMartin
    Signed-off-by: Linus Torvalds

    Kyle McMartin
     
  • In its ia64 defines SET_PERSONALITY in a way that unconditionally
    sets the personality of the current process to PER_LINUX, losing any flag bits
    from the upper 3 bytes of current->personality. This is wrong. Those bits are
    intended to be inherited across exec (other code takes care of ensuring that
    security sensitive bits like ADDR_NO_RANDOMIZE are not passed to unsuspecting
    setuid/setgid applications).

    Signed-off-by: Tony Luck

    Tony Luck
     

12 Feb, 2010

5 commits


11 Feb, 2010

6 commits

  • The patch that adds cpu_probe_vmbits is erroneously writing to reserved
    bit 12. Since we are really only probing high bits, don't write this bit
    with a one.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Cc: Guenter Roeck
    Patchwork: http://patchwork.linux-mips.org/patch/949/
    Acked-by: Guenter Roeck
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Test the value that was just allocated rather than the previously tested one.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @r@
    expression *x;
    expression e;
    identifier l;
    @@

    if (x == NULL || ...) {
    ... when forall
    return ...; }
    ... when != goto l;
    when != x = e
    when != &x
    *x == NULL
    //

    Signed-off-by: Julia Lawall
    To: linux-mips@linux-mips.org
    To: linux-kernel@vger.kernel.org
    To: kernel-janitors@vger.kernel.org
    Patchwork: http://patchwork.linux-mips.org/patch/945/
    Acked-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Julia Lawall
     
  • cpu_cache_init and the things it calls should all be __cpuinit instead
    of __devinit.

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

    David Daney
     
  • RTC support was rewritten but the defconfig files were not updated. Enable
    IPv6 support which for some folks already is a must have. Assign useful
    values to other new options.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • As reported by Maxime Bizon, the commit "MIPS: PowerTV: Fix support for
    timer interrupts with > 64 external IRQs" have broken the r4k timer
    since it didn't initialize the cp0_compare_irq_shift variable used in
    c0_compare_int_pending() on the architectures whose cpu_has_mips_r2 is
    false.

    This patch fixes it via initializing the cp0_compare_irq_shift as the
    cp0_compare_irq used in the old c0_compare_int_pending().

    Reported-by: Maxime Bizon
    Signed-off-by: Wu Zhangjin
    Cc: David VomLehn
    Cc: mbizon@freebox.fr
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/922/
    Tested-by: Shane McDonald
    Signed-off-by: Ralf Baechle

    Wu Zhangjin
     
  • The platform data allocated with kmalloc() will become unreachable once
    the init is complete, so it should be freed. The problem was discovered
    by kmemleak.

    Signed-off-by: Aaro Koskinen
    Acked-by: Adrian Hunter
    Signed-off-by: Tony Lindgren

    Aaro Koskinen
     

10 Feb, 2010

9 commits

  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] Fix struct _lowcore layout.
    [S390] qdio: prevent call trace if CHPID is offline
    [S390] qdio: continue polling for buffer state ERROR

    Linus Torvalds
     
  • * 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: PIT: control word is write-only
    kvmclock: count total_sleep_time when updating guest clock
    Export the symbol of getboottime and mmonotonic_to_bootbased

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
    avr32: clean up memory allocation in at32_add_device_mci
    arch/avr32: Fix build failure for avr32 caused by typo

    Linus Torvalds
     
  • We need to fall back from logical-flat APIC mode to physical-flat mode
    when we have more than 8 CPUs. However, in the presence of CPU
    hotplug(with bios listing not enabled but possible cpus as disabled cpus in
    MADT), we have to consider the number of possible CPUs rather than
    the number of current CPUs; otherwise we may cross the 8-CPU boundary
    when CPUs are added later.

    32bit apic code can use more cleanups (like the removal of vendor checks in
    32bit default_setup_apic_routing()) and more unifications with 64bit code.
    Yinghai has some patches in works already. This patch addresses the boot issue
    that is reported in the virtualization guest context.

    [ hpa: incorporated function annotation feedback from Yinghai Lu ]

    Signed-off-by: Suresh Siddha
    LKML-Reference:
    Acked-by: Shaohui Zheng
    Reviewed-by: Yinghai Lu
    Cc:
    Signed-off-by: H. Peter Anvin

    Suresh Siddha
     
  • Commit f71dc176aa06359681c30ba6877ffccab6fba3a6 'Make
    hpte_need_flush() correctly mask for multiple page sizes' introduced
    bug, which is triggered when a kernel with a 64k base page size is run
    on a system whose hardware does not 64k hash PTEs. In this case, we
    emulate 64k pages with multiple 4k hash PTEs, however in
    hpte_need_flush() we incorrectly only mask the hardware page size from
    the address, instead of the logical page size. This causes things to
    go wrong when we later attempt to iterate through the hardware
    subpages of the logical page.

    This patch corrects the error. It has been tested on pSeries bare
    metal by Michael Neuling.

    Signed-off-by: David Gibson
    Signed-off-by: Benjamin Herrenschmidt

    David Gibson
     
  • This is mandatory for 64-bit processes, and doing it also for 32-bit
    processes saves a conditional in the compat case.

    This fixes the glibc/nptl/tst-stdio1 test case, as well
    as many others, on 64-bit.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Both x86-32 and x86-64 with 32-bit compat use ARCH_DLINFO_IA32,
    which defines two saved_auxv entries. But system.h only defines
    AT_VECTOR_SIZE_ARCH as 2 for CONFIG_IA32_EMULATION, not for
    CONFIG_X86_32. Fix that.

    Signed-off-by: Serge E. Hallyn
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Serge E. Hallyn
     
  • PIT control word (address 0x43) is write-only, reads are undefined.

    Cc: stable@kernel.org
    Signed-off-by: Marcelo Tosatti

    Marcelo Tosatti
     
  • Current kvm wallclock does not consider the total_sleep_time which could cause
    wrong wallclock in guest after host suspend/resume. This patch solve
    this issue by counting total_sleep_time to get the correct host boot time.

    Cc: stable@kernel.org
    Signed-off-by: Jason Wang
    Acked-by: Glauber Costa
    Signed-off-by: Marcelo Tosatti

    Jason Wang
     

09 Feb, 2010

4 commits


08 Feb, 2010

6 commits

  • We found that on write-trough kernel is necessary to do that invalidation.
    One WB is possible to use invalidation too.

    Signed-off-by: Michal Simek

    Michal Simek
     
  • The code to track the CPPR values added by commit
    49bd3647134ea47420067aea8d1401e722bf2aac ("powerpc/pseries: Track previous
    CPPR values to correctly EOI interrupts") broke kexec on pseries because
    the kexec code in xics.c calls xics_set_cpu_priority() before the IPI has
    been EOI'ed. This wasn't a problem previously but it now triggers a BUG_ON
    in xics_set_cpu_priority() because os_cppr->index isn't 0.

    Fix this problem by setting the index on the CPPR stack to 0 before calling
    xics_set_cpu_priority() in xics_teardown_cpu().

    Also make it clear that we only want to set the priority when there's just
    one CPPR value in the stack, and enforce it by updating the value of
    os_cppr->stack[0] rather than os_cppr->stack[os_cppr->index].

    While we're at it change the BUG_ON to a WARN_ON.

    Reported-by: Anton Blanchard
    Signed-off-by: Mark Nelson
    Signed-off-by: Benjamin Herrenschmidt

    Mark Nelson
     
  • There's no need to setup the frame pointer again in
    call_handle_tlbmiss. The frame pointer will already have been setup in
    handle_interrupt.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • Unfortunately, due to poor DWARF info in current toolchains, unwinding
    through interrutps cannot be done reliably. The problem is that the
    DWARF info for function epilogues is wrong.

    Take this standard epilogue sequence,

    80003cc4: e3 6f mov r14,r15
    80003cc6: 26 4f lds.l @r15+,pr
    80003cc8: f6 6e mov.l @r15+,r14
    pc.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • In order to allow the DWARF unwinder to unwind through exceptions we
    need to setup the frame pointer register (r14).

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • The address that ret_from_exception and ret_from_irq will return to is
    found in the stack slot for SPC, not PR. This error was causing the
    DWARF unwinder to pick up the wrong return address on the stack and then
    unwind using the unwind tables for the wrong function.

    While I'm here I might as well add CFI annotations for the other
    registers since they could be useful when unwinding.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     

05 Feb, 2010

2 commits

  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: Fix wrong register in proc-arm6_7.S data abort handler
    ARM: 5909/1: ARM: Correct the FPSCR bits setting when raising exceptions
    ARM: 5904/1: ARM: Always generate the IT instruction when compiling for Thumb-2
    ARM: 5907/1: ARM: Fix the reset on the RealView PBX Development board
    mx35: add a missing comma in a pad definition
    mx25: make the FEC AHB clk secondary of the IPG
    mx25: fix time accounting
    mx25: properly initialize clocks
    mx25: remove unused mx25_clocks_init() argument
    i.MX25: implement secondary clocks for uarts and fec
    i.MX25: Allow secondary clocks in DEFINE_CLOCK
    ARM: MX3: Fixed typo in declared enum type name.
    MXC: Add AUDMUXv2 register decode to debugfs
    mx31ads: Provide an IRQ range to the WM835x on the 1133-EV1 module
    mx31ads: Provide a name for EXPIO interrupt chip
    mx31ads: Allow enable/disable of switchable supplies

    Linus Torvalds
     
  • …/git/tmlind/linux-omap-2.6

    * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
    omap: Disable serial port autoidle by default
    omap: Fix access to already released memory in clk_debugfs_register_one()
    omap: Fix arch/arm/mach-omap2/mux.c: Off by one error
    omap: Fix 3630 mux errors
    OMAP2/3: GPMC: ensure valid clock pointer
    OMAP2/3: IRQ: ensure valid base address
    ARCH OMAP : enable ARCH_HAS_HOLES_MEMORYMODEL for OMAP
    omap: Remove old unused defines for OMAP_32KSYNCT_BASE
    omap: define _toggle_gpio_edge_triggering only for OMAP1

    Linus Torvalds
     

04 Feb, 2010

2 commits

  • Currently the omap serial clocks are autoidled after 5 seconds.
    However, this causes lost characters on the serial ports. As this
    is considered non-standard behaviour for Linux, disable the timeout.

    Note that this will also cause blocking of any deeper omap sleep
    states.

    To enable the autoidling of the serial ports, do something like
    this for each serial port:

    # echo 5 > /sys/devices/platform/serial8250.0/sleep_timeout
    # echo 5 > /sys/devices/platform/serial8250.1/sleep_timeout
    ...

    Signed-off-by: Kevin Hilman
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • I have found an access to already released memory in
    clk_debugfs_register_one() function.

    Signed-off-by: Marek Skuczynski
    Acked-by: Paul Walmsley
    Signed-off-by: Tony Lindgren

    Marek Skuczynski