22 Nov, 2011

1 commit


21 Nov, 2011

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (86 commits)
    ipv4: fix redirect handling
    ping: dont increment ICMP_MIB_INERRORS
    sky2: fix hang in napi_disable
    sky2: enforce minimum ring size
    bonding: Don't allow mode change via sysfs with slaves present
    f_phonet: fix page offset of first received fragment
    stmmac: fix pm functions avoiding sleep on spinlock
    stmmac: remove spin_lock in stmmac_ioctl.
    stmmac: parameters auto-tuning through HW cap reg
    stmmac: fix advertising 1000Base capabilties for non GMII iface
    stmmac: use mdelay on timeout of sw reset
    sky2: version 1.30
    sky2: used fixed RSS key
    sky2: reduce default Tx ring size
    sky2: rename up/down functions
    sky2: pci posting issues
    sky2: fix hang on shutdown (and other irq issues)
    r6040: fix check against MCRO_HASHEN bit in r6040_multicast_list
    MAINTAINERS: change email address for shemminger
    pch_gbe: Move #include of module.h
    ...

    Linus Torvalds
     
  • * 'kvm-updates/3.2' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM guest: prevent tracing recursion with kvmclock
    Revert "KVM: PPC: Add support for explicit HIOR setting"
    KVM: VMX: Check for automatic switch msr table overflow
    KVM: VMX: Add support for guest/host-only profiling
    KVM: VMX: add support for switching of PERF_GLOBAL_CTRL
    KVM: s390: announce SYNC_MMU
    KVM: s390: Fix tprot locking
    KVM: s390: handle SIGP sense running intercepts
    KVM: s390: Fix RUNNING flag misinterpretation

    Linus Torvalds
     
  • * 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    ARM: wire up process_vm_writev and process_vm_readv syscalls
    ARM: 7160/1: setup: avoid overflowing {elf,arch}_name from proc_info_list
    ARM: 7158/1: add new MFP implement for NUC900
    ARM: 7157/1: fix a building WARNING for nuc900
    ARM: 7156/1: l2x0: fix compile error on !CONFIG_USE_OF
    ARM: 7155/1: arch.h: Declare 'pt_regs' locally
    ARM: 7154/1: mach-bcmring: fix build error in dma.c
    ARM: 7153/1: mach-bcmring: fix build error in core.c
    ARM: 7152/1: distclean: Remove generated .dtb files
    ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ processors
    ARM: 7149/1: spi/pl022: Enable clock in probe
    Revert "ARM: 7098/1: kdump: copy kernel relocation code at the kexec prepare stage"

    Linus Torvalds
     
  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PM / Suspend: Fix bug in suspend statistics update
    PM / Hibernate: Fix the early termination of test modes
    PM / shmobile: Fix build of sh7372_pm_init() for CONFIG_PM unset
    PM Sleep: Do not extend wakeup paths to devices with ignore_children set
    PM / driver core: disable device's runtime PM during shutdown
    PM / devfreq: correct Kconfig dependency
    PM / devfreq: fix use after free in devfreq_remove_device
    PM / shmobile: Avoid restoring the INTCS state during initialization
    PM / devfreq: Remove compiler error after irq.h update
    PM / QoS: Properly use the WARN() macro in dev_pm_qos_add_request()
    PM / Clocks: Only disable enabled clocks in pm_clk_suspend()
    ARM: mach-shmobile: sh7372 A3SP no_suspend_console fix
    PM / shmobile: Don't skip debugging output in pd_power_up()

    Linus Torvalds
     

20 Nov, 2011

1 commit

  • Prevent tracing of preempt_disable() in get_cpu_var() in
    kvm_clock_read(). When CONFIG_DEBUG_PREEMPT is enabled,
    preempt_disable/enable() are traced and this causes the function_graph
    tracer to go into an infinite recursion. By open coding the
    preempt_disable() around the get_cpu_var(), we can use the notrace
    version which prevents preempt_disable/enable() from being traced and
    prevents the recursion.

    Based on a similar patch for Xen from Jeremy Fitzhardinge.

    Tested-by: Gleb Natapov
    Acked-by: Steven Rostedt
    Signed-off-by: Avi Kivity

    Avi Kivity
     

19 Nov, 2011

2 commits

  • * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    random: Fix handing of arch_get_random_long in get_random_bytes()
    x86: Call stop_machine_text_poke() on all CPUs
    x86, ioapic: Only print ioapic debug information for IRQs belonging to an ioapic chip
    x86/mrst: Avoid reporting wrong nmi status
    x86/mrst: Add support for Penwell clock calibration
    x86/apic: Allow use of lapic timer early calibration result
    x86/apic: Do not clear nr_irqs_gsi if no legacy irqs
    x86/platform: Add a wallclock_init func to x86_platforms ops
    x86/mce: Make mce_chrdev_ops 'static const'

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Patch sun4v code sequences properly on module load.
    sparc: Kill custom io_remap_pfn_range().
    sparc: Stash orig_i0 into %g6 instead of %g2
    sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls.
    sparc: sigutil: Include

    Linus Torvalds
     

18 Nov, 2011

7 commits

  • …kernel/git/konrad/xen

    * 'stable/for-linus-fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen-gntalloc: signedness bug in add_grefs()
    xen-gntalloc: integer overflow in gntalloc_ioctl_alloc()
    xen-gntdev: integer overflow in gntdev_alloc_map()
    xen:pvhvm: enable PVHVM VCPU placement when using more than 32 CPUs.
    xen/balloon: Avoid OOM when requesting highmem
    xen: Remove hanging references to CONFIG_XEN_PLATFORM_PCI
    xen: map foreign pages for shared rings by updating the PTEs directly

    Linus Torvalds
     
  • * 'unicore32' of git://github.com/gxt/linux:
    unicore32, exec: remove redundant set_fs(USER_DS)
    unicore32: Fix typo 'PUV3_I2C'
    unicore32: drop unused Kconfig symbols
    rtc: rtc-puv3: Add __devinit and __devexit markers for probe and remove
    arch/unicore32: do not use EXTRA_AFLAGS or EXTRA_CFLAGS
    unicore32: fix build error for find bitops

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc/signal32: Fix sigset_t conversion when copying to user
    powerpc: Fix atomic_xxx_return barrier semantics
    powerpc: Remove buggy 9-year-old test for binutils < 2.12.1
    powerpc/book3e-64: Fix debug support for userspace
    powerpc: Remove extraneous CONFIG_PPC_ADV_DEBUG_REGS define
    powerpc: Revert show_regs() define for readability
    powerpc/ps3: Fix SMP lockdep boot warning
    powerpc/ps3: Fix lost SMP IPIs
    powerpc: Add hvcall.h include to book3s_hv.c
    powerpc/trace: Add a dummy stack frame for trace_hardirqs_off
    powerpc: Copy down exception vectors after feature fixups
    powerpc: panic if we can't instantiate RTAS
    powerpc/4xx: Fix typos in kexec config dependencies
    powerpc/fsl: MCU_MPC8349EMITX wants I2C built-in, modular won't do...
    powerpc/fsl_udc_core: Fix dumb typo
    carma-fpga: Missed switch from of_register_platform_driver()
    powerpc: Fix build breakage in jump_label.c

    Linus Torvalds
     
  • Some of the sun4v code patching occurs in inline functions visible
    to, and usable by, modules.

    Therefore we have to patch them up during module load.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • To handle the large physical addresses, just make a simple wrapper
    around remap_pfn_range() like MIPS does.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Fix build regression introduced by commit 056879d2f244001b2888cdc8cf
    (ARM: mach-shmobile: sh7372 A3SP no_suspend_console fix) by moving
    the intialization of the A3SP domain to a separate function and
    providing an empty definition of it for CONFIG_PM unset.

    Reported-and-tested-by: Guennadi Liakhovetski
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • These two syscalls were introduced during the last merge window.
    Add the entries into the ARM call tables for them.

    Signed-off-by: Russell King

    Russell King
     

17 Nov, 2011

16 commits

  • This reverts commit a15bd354f083f20f257db450488db52ac27df439.

    It exceeded the padding on the SREGS struct, rendering the ABI
    backwards-incompatible.

    Conflicts:

    arch/powerpc/kvm/powerpc.c
    include/linux/kvm.h

    Signed-off-by: Avi Kivity

    Alexander Graf
     
  • Signed-off-by: Gleb Natapov
    Signed-off-by: Avi Kivity

    Gleb Natapov
     
  • Support guest/host-only profiling by switch perf msrs on
    a guest entry if needed.

    Signed-off-by: Gleb Natapov
    Signed-off-by: Avi Kivity

    Gleb Natapov
     
  • Some cpus have special support for switching PERF_GLOBAL_CTRL msr.
    Add logic to detect if such support exists and works properly and extend
    msr switching code to use it if available. Also extend number of generic
    msr switching entries to 8.

    Signed-off-by: Gleb Natapov
    Signed-off-by: Avi Kivity

    Gleb Natapov
     
  • KVM on s390 always had a sync mmu. Any mapping change in userspace
    mapping was always reflected immediately in the guest mapping.
    - In older code the guest mapping was just an offset
    - In newer code the last level page table is shared

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Christian Borntraeger
     
  • There is a potential host deadlock in the tprot intercept handling.
    We must not hold the mmap semaphore while resolving the guest
    address. If userspace is remapping, then the memory detection in
    the guest is broken anyway so we can safely separate the
    address translation from walking the vmas.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Christian Borntraeger
     
  • SIGP sense running may cause an intercept on higher level
    virtualization, so handle it by checking the CPUSTAT_RUNNING flag.

    Signed-off-by: Cornelia Huck
    Signed-off-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Cornelia Huck
     
  • CPUSTAT_RUNNING was implemented signifying that a vcpu is not stopped.
    This is not, however, what the architecture says: RUNNING should be
    set when the host is acting on the behalf of the guest operating
    system.

    CPUSTAT_RUNNING has been changed to be set in kvm_arch_vcpu_load()
    and to be unset in kvm_arch_vcpu_put().

    For signifying stopped state of a vcpu, a host-controlled bit has
    been used and is set/unset basically on the reverse as the old
    CPUSTAT_RUNNING bit (including pushing it down into stop handling
    proper in handle_stop()).

    Cc: stable@kernel.org
    Signed-off-by: Cornelia Huck
    Signed-off-by: Carsten Otte
    Signed-off-by: Avi Kivity

    Cornelia Huck
     
  • On PPC64, put_sigset_t converts a sigset_t to a compat_sigset_t
    before copying it to userspace. There is a typo in the case that
    we have 4 words to copy, meaning that we corrupt the compat_sigset_t.

    It appears that _NSIG_WORDS can't be greater than 2 at the moment
    so this code is probably always optimised away anyway.

    Signed-off-by: Will Deacon
    Signed-off-by: Benjamin Herrenschmidt

    Will Deacon
     
  • The Documentation/memory-barriers.txt document requires that atomic
    operations that return a value act as a memory barrier both before
    and after the actual atomic operation.

    Our current implementation doesn't guarantee this. More specifically,
    while a load following the isync can not be issued before stwcx. has
    completed, that completion doesn't architecturally means that the
    result of stwcx. is visible to other processors (or any previous stores
    for that matter) (typically, the other processors L1 caches can still
    hold the old value).

    This has caused an actual crash in RCU torture testing on Power 7

    This fixes it by changing those atomic ops to use new macros instead
    of RELEASE/ACQUIRE barriers, called ATOMIC_ENTRY and ATMOIC_EXIT barriers,
    which are then defined respectively to lwsync and sync.

    I haven't had a chance to measure the performance impact (or rather
    what I measured with kernel compiles is in the noise, I yet have to
    find a more precise benchmark)

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Paul E. McKenney

    Benjamin Herrenschmidt
     
  • Recent binutils refuses to assemble AltiVec opcodes when in e500/SPE
    mode, as some of those opcodes alias the "SPE" instructions. This
    triggers an ancient binutils version check even when building a kernel
    with CONFIG_ALTIVEC disabled.

    In theory, the check could be conditionalized on CONFIG_ALTIVEC, but in
    practice it has long outlived its utility. It is virtually impossible
    to find binutils older than 2.12.1 (released 2002) in the wild anymore.
    Even ancient RedHat Enterprise Linux 4 has binutils-2.14.

    To fix the kernel build when done natively on e500 systems with this new
    binutils, the test is simply removed.

    Signed-off-by: Kyle Moffett
    Signed-off-by: Benjamin Herrenschmidt

    Kyle Moffett
     
  • With the introduction of CONFIG_PPC_ADV_DEBUG_REGS user space debug is
    broken on Book-E 64-bit parts that support delayed debug events. When
    switch_booke_debug_regs() sets DBCR0 we'll start getting debug events as
    MSR_DE is also set and we aren't able to handle debug events from kernel
    space.

    We can remove the hack that always enables MSR_DE and loads up DBCR0 and
    just utilize switch_booke_debug_regs() to get user space debug working
    again.

    We still need to handle critical/debug exception stacks & proper
    save/restore of state for those exception levles to support debug events
    from kernel space like we have on 32-bit.

    Signed-off-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Kumar Gala
     
  • All of DebugException is already protected by CONFIG_PPC_ADV_DEBUG_REGS
    there is no need to have another such ifdef inside the function.

    Signed-off-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Kumar Gala
     
  • We had an existing ifdef for 4xx & BOOKE processors that got changed to
    CONFIG_PPC_ADV_DEBUG_REGS. The define has nothing to do with
    CONFIG_PPC_ADV_DEBUG_REGS. The define really should be:

    #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)

    and not

    #ifdef CONFIG_PPC_ADV_DEBUG_REGS

    Signed-off-by: Kumar Gala
    Signed-off-by: Benjamin Herrenschmidt

    Kumar Gala
     
  • PVHVM running with more than 32 vcpus and pv_irq/pv_time enabled
    need VCPU placement to work, or else it will softlockup.

    CC: stable@kernel.org
    Acked-by: Stefano Stabellini
    Signed-off-by: Zhenzhong Duan
    Signed-off-by: Konrad Rzeszutek Wilk

    Zhenzhong Duan
     
  • When mapping a foreign page with xenbus_map_ring_valloc() with the
    GNTTABOP_map_grant_ref hypercall, set the GNTMAP_contains_pte flag and
    pass a pointer to the PTE (in init_mm).

    After the page is mapped, the usual fault mechanism can be used to
    update additional MMs. This allows the vmalloc_sync_all() to be
    removed from alloc_vm_area().

    Signed-off-by: David Vrabel
    Acked-by: Andrew Morton
    [v1: Squashed fix by Michal for no-mmu case]
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Michal Simek

    David Vrabel
     

16 Nov, 2011

9 commits

  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] topology: fix topology on z10 machines
    [S390] crypto: avoid MSA3 and MSA4 instructions in ESA mode
    [S390] avoid STCKF if running in ESA mode
    [S390] zfcpdump: Do not initialize zfcpdump in kdump mode
    [S390] ap: Setup processing for messages in request queue.
    [S390] Kconfig: Select CONFIG_KEXEC for CONFIG_CRASH_DUMP
    [S390] incorrect note program header
    [S390] pfault: ignore leftover completion interrupts
    [S390] fix pgste update logic
    [S390] wire up process_vm syscalls

    Linus Torvalds
     
  • Move the PS3 IPI message setup from ps3_smp_setup_cpu() to ps3_smp_probe().

    Fixes startup warnings like these:

    ------------[ cut here ]------------
    WARNING: at kernel/lockdep.c:2649
    Modules linked in:
    ...
    ---[ end trace 31fd0ba7d8756001 ]---

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • Fixes the PS3 bootup hang introduced in 3.0-rc1 by:

    commit 317f394160e9beb97d19a84c39b7e5eb3d7815a
    sched: Move the second half of ttwu() to the remote cpu

    Move the PS3's LV1 EOI call lv1_end_of_interrupt_ext() from ps3_chip_eoi()
    to ps3_get_irq() for IPI messages.

    If lv1_send_event_locally() is called between a previous call to
    lv1_send_event_locally() and the coresponding call to
    lv1_end_of_interrupt_ext() the second event will not be delivered to the
    target cpu.

    The PS3's SMP IPIs are implemented using lv1_send_event_locally(), so if two
    IPI messages of the same type are sent to the same target in a relatively
    short period of time the second IPI event can become lost when
    lv1_end_of_interrupt_ext() is called from ps3_chip_eoi().

    CC: stable@kernel.org
    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt

    Geoff Levand
     
  • If you build with KVM and UP it fails with the following due to a
    missing include.

    /arch/powerpc/kvm/book3s_hv.c: In function 'do_h_register_vpa':
    arch/powerpc/kvm/book3s_hv.c:156:10: error: 'H_PARAMETER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:156:10: note: each undeclared identifier is reported only once for each function it appears in
    arch/powerpc/kvm/book3s_hv.c:192:12: error: 'H_RESOURCE' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:222:9: error: 'H_SUCCESS' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c: In function 'kvmppc_pseries_do_hcall':
    arch/powerpc/kvm/book3s_hv.c:228:30: error: 'H_SUCCESS' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:232:7: error: 'H_CEDE' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:234:7: error: 'H_PROD' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:238:10: error: 'H_PARAMETER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:250:7: error: 'H_CONFER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:252:7: error: 'H_REGISTER_VPA' undeclared (first use in this function)
    make[2]: *** [arch/powerpc/kvm/book3s_hv.o] Error 1

    Signed-off-by: Michael Neuling
    cc: stable@kernel.org (3.1 only)
    Signed-off-by: Benjamin Herrenschmidt

    Michael Neuling
     
  • The trace_hardirqs_off will use CALLER_ADDR0 and CALLER_ADDR1.
    If an exception occurs in user mode, there is only one stack frame
    on the stack and accessing the CALLER_ADDR1 will causes the following
    call trace. So we create a dummy stack frame to make
    trace_hardirqs_off happy.

    WARNING: at kernel/smp.c:459
    Modules linked in:
    NIP: c0093280 LR: c00930a0 CTR: c0010780
    REGS: edb87ae0 TRAP: 0700 Not tainted (3.1.0)
    MSR: 00021002 CR: 28002888 XER: 00000000
    TASK = edce2ac0[17658] 'mthread-lock-on' THREAD: edb86000 CPU: 5
    GPR00: 00000001 edb87b90 edce2ac0 00000005 c0019594 edb87bd8 00000001 00000fe3
    GPR08: 00041000 c084138c 4e20120d edb87b90 48002888 1001aa7c 00000000 00000000
    GPR16: 48830000 10012a8c 00000000 10000af4 00000001 c0810000 00000000 00000000
    GPR24: ee9aa920 c0816a18 00000000 00000005 c0019594 edb87bd8 ee20178c edb87b90
    NIP [c0093280] smp_call_function_many+0x214/0x2b4
    LR [c00930a0] smp_call_function_many+0x34/0x2b4
    Call Trace:
    [edb87b90] [c00930a0] smp_call_function_many+0x34/0x2b4 (unreliable)
    [edb87bd0] [c00194ec] __flush_tlb_page+0xac/0x100
    [edb87c00] [c001957c] flush_tlb_page+0x3c/0x54
    [edb87c10] [c00180ac] ptep_set_access_flags+0x74/0x12c
    [edb87c40] [c0128068] handle_pte_fault+0x2f0/0x9ac
    [edb87cb0] [c0128c3c] handle_mm_fault+0x104/0x1dc
    [edb87ce0] [c05f40f4] do_page_fault+0x2dc/0x630
    [edb87e50] [c001078c] handle_page_fault+0xc/0x80

    Signed-off-by: Benjamin Herrenschmidt

    Kevin Hao
     
  • kdump fails because we try to execute an HV only instruction. Feature
    fixups are being applied after we copy the exception vectors down to 0
    so they miss out on any updates.

    We have always had this issue but it only became critical in v3.0
    when we added CFAR support (breaks POWER5) and v3.1 when we added
    POWERNV (breaks everyone).

    Signed-off-by: Anton Blanchard
    Cc: [v3.0+]
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • I had to debug a strange situation where all manner of things were
    failing. SMT threads, storage and network were all completely broken.

    The root cause was we couldn't find enough memory to instantiate RTAS -
    this was a network install so the initrd was huge.

    Instead of limping along and failing in mysterious ways we should just
    panic up front if RTAS exists and we can't allocate space for it.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • Kexec is not supported on 47x. 47x is a variant of 44x with slightly
    different MMU and SMP support. There was a typo in the config dependency
    for kexec. This patch fixes the same.

    Signed-off-by: Suzuki K. Poulose
    Signed-off-by: Paul Bolle
    Cc: Kumar Gala
    Cc: Josh Boyer
    Cc: linux ppc dev
    Signed-off-by: Benjamin Herrenschmidt

    Suzuki Poulose
     
  • Signed-off-by: Al Viro
    Signed-off-by: Benjamin Herrenschmidt

    Al Viro