1. 12 Jun, 2013 21 commits
  2. 11 Jun, 2013 9 commits
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm · af180b81
      Linus Torvalds authored
      Pull kvm bugfixes from Gleb Natapov:
       "There is one more fix for MIPS KVM ABI here, MIPS and PPC build
        breakage fixes and a couple of PPC bug fixes"
      
      * 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
        kvm/ppc/booke: Hold srcu lock when calling gfn functions
        kvm/ppc/booke64: Disable e6500 support
        kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
        mips/kvm: Use KVM_REG_MIPS and proper size indicators for *_ONE_REG
        kvm: Add definition of KVM_REG_MIPS
        KVM: add kvm_para_available to asm-generic/kvm_para.h
      af180b81
    • Scott Wood's avatar
      kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit() · 7c11c0cc
      Scott Wood authored
      EE is hard-disabled on entry to kvmppc_handle_exit(), so call
      hard_irq_disable() so that PACA_IRQ_HARD_DIS is set, and soft_enabled
      is unset.
      
      Without this, we get warnings such as arch/powerpc/kernel/time.c:300,
      and sometimes host kernel hangs.
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      7c11c0cc
    • Scott Wood's avatar
      kvm/ppc/booke: Hold srcu lock when calling gfn functions · f1e89028
      Scott Wood authored
      KVM core expects arch code to acquire the srcu lock when calling
      gfn_to_memslot and similar functions.
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      f1e89028
    • Scott Wood's avatar
      kvm/ppc/booke64: Disable e6500 support · 2b6398fc
      Scott Wood authored
      The previous patch made 64-bit booke KVM build again, but Altivec
      support is still not complete, and we can't prevent the guest from
      turning on Altivec (which can corrupt host state until state
      save/restore is implemented).  Disable e6500 on KVM until this is
      fixed.
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      2b6398fc
    • Mihai Caraman's avatar
      kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage · 4edd1ae9
      Mihai Caraman authored
      Interrupt numbers defined for Book3E follows IVORs definition. Align
      BOOKE_INTERRUPT_ALTIVEC_UNAVAIL and BOOKE_INTERRUPT_ALTIVEC_ASSIST to this
      rule which also fixes the build breakage.
      IVORs 32 and 33 are shared so reflect this in the interrupts naming.
      
      This fixes a build break for 64-bit booke KVM.
      Signed-off-by: default avatarMihai Caraman <mihai.caraman@freescale.com>
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      4edd1ae9
    • David Daney's avatar
      mips/kvm: Use KVM_REG_MIPS and proper size indicators for *_ONE_REG · 681865d4
      David Daney authored
      The API requires that the GET_ONE_REG and SET_ONE_REG ioctls have this
      extra information encoded in the register identifiers.
      Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      681865d4
    • David Daney's avatar
      kvm: Add definition of KVM_REG_MIPS · 2a8fedd0
      David Daney authored
      We use 0x7000000000000000ULL as 0x6000000000000000ULL is reserved for
      ARM64.
      Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      2a8fedd0
    • Ben Greear's avatar
      Fix lockup related to stop_machine being stuck in __do_softirq. · 34376a50
      Ben Greear authored
      The stop machine logic can lock up if all but one of the migration
      threads make it through the disable-irq step and the one remaining
      thread gets stuck in __do_softirq.  The reason __do_softirq can hang is
      that it has a bail-out based on jiffies timeout, but in the lockup case,
      jiffies itself is not incremented.
      
      To work around this, re-add the max_restart counter in __do_irq and stop
      processing irqs after 10 restarts.
      
      Thanks to Tejun Heo and Rusty Russell and others for helping me track
      this down.
      
      This was introduced in 3.9 by commit c10d7367 ("softirq: reduce
      latencies").
      
      It may be worth looking into ath9k to see if it has issues with its irq
      handler at a later date.
      
      The hang stack traces look something like this:
      
          ------------[ cut here ]------------
          WARNING: at kernel/watchdog.c:245 watchdog_overflow_callback+0x9c/0xa7()
          Watchdog detected hard LOCKUP on cpu 2
          Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 nfsv4 auth_rpcgss nfs fscache nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc pktgen lockd sunrpc]
          Pid: 23, comm: migration/2 Tainted: G         C   3.9.4+ #11
          Call Trace:
           <NMI>   warn_slowpath_common+0x85/0x9f
            warn_slowpath_fmt+0x46/0x48
            watchdog_overflow_callback+0x9c/0xa7
            __perf_event_overflow+0x137/0x1cb
            perf_event_overflow+0x14/0x16
            intel_pmu_handle_irq+0x2dc/0x359
            perf_event_nmi_handler+0x19/0x1b
            nmi_handle+0x7f/0xc2
            do_nmi+0xbc/0x304
            end_repeat_nmi+0x1e/0x2e
           <<EOE>>
            cpu_stopper_thread+0xae/0x162
            smpboot_thread_fn+0x258/0x260
            kthread+0xc7/0xcf
            ret_from_fork+0x7c/0xb0
          ---[ end trace 4947dfa9b0a4cec3 ]---
          BUG: soft lockup - CPU#1 stuck for 22s! [migration/1:17]
          Modules linked in: ath9k ath9k_common ath9k_hw ath mac80211 cfg80211 nfsv4 auth_rpcgss nfs fscache nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc pktgen lockd sunrpc]
          irq event stamp: 835637905
          hardirqs last  enabled at (835637904): __do_softirq+0x9f/0x257
          hardirqs last disabled at (835637905): apic_timer_interrupt+0x6d/0x80
          softirqs last  enabled at (5654720): __do_softirq+0x1ff/0x257
          softirqs last disabled at (5654725): irq_exit+0x5f/0xbb
          CPU 1
          Pid: 17, comm: migration/1 Tainted: G        WC   3.9.4+ #11 To be filled by O.E.M. To be filled by O.E.M./To be filled by O.E.M.
          RIP: tasklet_hi_action+0xf0/0xf0
          Process migration/1
          Call Trace:
           <IRQ>
            __do_softirq+0x117/0x257
            irq_exit+0x5f/0xbb
            smp_apic_timer_interrupt+0x8a/0x98
            apic_timer_interrupt+0x72/0x80
           <EOI>
            printk+0x4d/0x4f
            stop_machine_cpu_stop+0x22c/0x274
            cpu_stopper_thread+0xae/0x162
            smpboot_thread_fn+0x258/0x260
            kthread+0xc7/0xcf
            ret_from_fork+0x7c/0xb0
      Signed-off-by: default avatarBen Greear <greearb@candelatech.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarPekka Riikonen <priikone@iki.fi>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      34376a50
    • Linus Torvalds's avatar
      Merge tag '9p-3.10-bug-fix-1' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 1b79821f
      Linus Torvalds authored
      Pull net/9p bug fix from Eric Van Hensbergen:
       "zero copy error fix"
      
      * tag '9p-3.10-bug-fix-1' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        net/9p: Handle error in zero copy request correctly for 9p2000.u
      1b79821f
  3. 10 Jun, 2013 7 commits
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · ab029631
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A few nasty issues, particularly a race with the interrupt controller
        in the xilinx driver, together with a couple of more minor fixes and a
        much needed move of the mailing list away from sourceforge."
      
      * tag 'spi-v3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: hspi: fixup long delay time
        spi: spi-xilinx: Remove ISR race condition
        spi: topcliff-pch: fix error return code in pch_spi_probe()
        spi: topcliff-pch: Pass correct pointer to free_irq()
        spi: Move mailing list to vger
      ab029631
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.10-rc5-tag' of... · 50e6f851
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.10-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull xen fixes from Konrad Rzeszutek Wilk:
       "Two bug-fixes for regressions:
         - xen/tmem stopped working after a certain combination of
           modprobe/swapon was used
         - cpu online/offlining would trigger WARN_ON."
      
      * tag 'stable/for-linus-3.10-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it.
        xen/smp: Fixup NOHZ per cpu data when onlining an offline CPU.
      50e6f851
    • Linus Torvalds's avatar
      Merge tag 'regmap-v3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 30f5f739
      Linus Torvalds authored
      Pull regmap fixes from Mark Brown:
       "The biggest fix here is Lars-Peter's fix for custom locking callbacks
        which is pretty localised but important for those devices that use the
        feature.  Otherwise we've got a couple of fairly small cleanups which
        would have been sent sooner were it not for letting Lars-Peter's patch
        soak for a while"
      
      * tag 'regmap-v3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: rbtree: Fixed node range check on sync
        regmap: regcache: Fixup locking for custom lock callbacks
        regmap: debugfs: Check return value of regmap_write()
      30f5f739
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 822b4b6f
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes a build problem in sahara and temporarily disables two new
        optimisations because of performance regressions until a permanent fix
        is ready"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: sahara - fix building as module
        crypto: blowfish - disable AVX2 implementation
        crypto: twofish - disable AVX2 implementation
      822b4b6f
    • Konrad Rzeszutek Wilk's avatar
      xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it. · b2c75c44
      Konrad Rzeszutek Wilk authored
      Commit 10a7a077 ("xen: tmem: enable Xen
      tmem shim to be built/loaded as a module") allows the tmem module
      to be loaded any time. For this work the frontswap API had to
      be able to asynchronously to call tmem_frontswap_init before
      or after the swap image had been set. That was added in git
      commit 905cd0e1
      ("mm: frontswap: lazy initialization to allow tmem backends to build/run as modules").
      
      Which means we could do this (The common case):
      
       modprobe tmem		[so calls frontswap_register_ops, no ->init]
      			 modifies tmem_frontswap_poolid = -1
       swapon /dev/xvda1	[__frontswap_init, calls -> init, tmem_frontswap_poolid is
      			 < 0 so tmem hypercall done]
      
      Or the failing one:
      
       swapon /dev/xvda1	[calls __frontswap_init, sets the need_init bitmap]
       modprobe tmem		[calls frontswap_register_ops, -->init calls, finds out
      			tmem_frontswap_poolid is 0, does not make a hypercall.
      			Later in the module_init, sets tmem_frontswap_poolid=-1]
      
      Which meant that in the failing case we would not call the hypercall
      to initialize the pool and never be able to make any frontswap
      backend calls.
      
      Moving the frontswap_register_ops after setting the tmem_frontswap_poolid
      fixes it.
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: default avatarBob Liu <bob.liu@oracle.com>
      b2c75c44
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · ae75d84f
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "This is purely regressions (though not all recent ones) or stable
        material"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc: Partial revert of "Context switch more PMU related SPRs"
        powerpc/perf: Fix deadlock caused by calling printk() in PMU exception
        powerpc/hw_breakpoints: Add DABRX cpu feature to fix 32-bit regression
        powerpc/power8: Update denormalization handler
        powerpc/pseries: Simplify denormalization handler
        powerpc/power8: Fix oprofile and perf
        powerpc/eeh: Don't check RTAS token to get PE addr
        powerpc/pci: Check the bus address instead of resource address in pcibios_fixup_resources
      ae75d84f
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 0b52a3c8
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "The biggest two fixes are fixing a compilation error with the
        decompressor, and a problem with our __my_cpu_offset implementation.
      
        Other changes are very trivial and small, which seems to be the way
        for most -rc stuff."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7747/1: pcpu: ensure __my_cpu_offset cannot be re-ordered across barrier()
        ARM: 7750/1: update legacy CPU ID in decompressor cache support jump table
        ARM: 7743/1: compressed/head.S: work around new binutils warning
        ARM: 7742/1: topology: export cpu_topology
        ARM: 7737/1: fix kernel decompressor compilation error with CONFIG_DEBUG_SEMIHOSTING
      0b52a3c8
  4. 09 Jun, 2013 3 commits
    • Michael Ellerman's avatar
      powerpc: Partial revert of "Context switch more PMU related SPRs" · b11ae951
      Michael Ellerman authored
      In commit 59affcd3 I added context switching of more PMU SPRs, because
      they are potentially exposed to userspace on Power8. However despite me
      being a smart arse in the commit message it's actually not correct. In
      particular it interacts badly with a global perf record.
      
      We will have to do something more complicated, but that will have to
      wait for 3.11.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b11ae951
    • Michael Ellerman's avatar
      powerpc/perf: Fix deadlock caused by calling printk() in PMU exception · 6772faa1
      Michael Ellerman authored
      In commit bc09c219 "Fix finding overflowed PMC in interrupt" we added
      a printk() to the PMU exception handler. Unfortunately that is not safe.
      
      The problem is that the PMU exception may run even when interrupts are
      soft disabled, aka NMI context. We do this so that we can profile parts
      of the kernel that have interrupts soft-disabled.
      
      But by calling printk() from the exception handler, we can potentially
      deadlock in the printk code on logbuf_lock, eg:
      
        [c00000038ba575c0] c000000000081928 .vprintk_emit+0xa8/0x540
        [c00000038ba576a0] c0000000007bcde8 .printk+0x48/0x58
        [c00000038ba57710] c000000000076504 .perf_event_interrupt+0x2d4/0x490
        [c00000038ba57810] c00000000001f6f8 .performance_monitor_exception+0x48/0x60
        [c00000038ba57880] c0000000000032cc performance_monitor_common+0x14c/0x180
        --- Exception: f01 (Performance Monitor) at c0000000007b25d4 ._raw_spin_lock_irq
        +0x64/0xc0
        [c00000038ba57bf0] c00000000007ed90 .devkmsg_read+0xd0/0x5a0
        [c00000038ba57d00] c0000000001c2934 .vfs_read+0xc4/0x1e0
        [c00000038ba57d90] c0000000001c2cd8 .SyS_read+0x58/0xd0
        [c00000038ba57e30] c000000000009d54 syscall_exit+0x0/0x98
        --- Exception: c01 (System Call) at 00001fffffbf6f7c
        SP (3ffff6d4de10) is in userspace
      
      Fix it by making sure we only call printk() when we are not in NMI
      context.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Cc: <stable@vger.kernel.org> # 3.9
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      6772faa1
    • Michael Neuling's avatar
      powerpc/hw_breakpoints: Add DABRX cpu feature to fix 32-bit regression · 82a9f16a
      Michael Neuling authored
      When introducing support for DABRX in 4474ef05, we broke older 32-bit CPUs
      that don't have that register.
      
      Some CPUs have a DABR but not DABRX.  Configuration are:
      - No 32bit CPUs have DABRX but some have DABR.
      - POWER4+ and below have the DABR but no DABRX.
      - 970 and POWER5 and above have DABR and DABRX.
      - POWER8 has DAWR, hence no DABRX.
      
      This introduces CPU_FTR_DABRX and sets it on appropriate CPUs.  We use
      the top 64 bits for CPU FTR bits since only 64 bit CPUs have this.
      
      Processors that don't have the DABRX will still work as they will fall
      back to software filtering these breakpoints via perf_exclude_event().
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Reported-by: default avatar"Gorelik, Jacob (335F)" <jacob.gorelik@jpl.nasa.gov>
      cc: stable@vger.kernel.org (v3.9 only)
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      82a9f16a