1. 23 Oct, 2015 8 commits
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.3-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · a2c01ed5
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on
         POWER8" from Paul
       - Handle irq_happened flag correctly in off-line loop from Paul
       - Validate rtas.entry before calling enter_rtas() from Vasant
      
      * tag 'powerpc-4.3-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/rtas: Validate rtas.entry before calling enter_rtas()
        powerpc/powernv: Handle irq_happened flag correctly in off-line loop
        powerpc: Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8"
      a2c01ed5
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d0ddf980
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Most of the changes this time are for incorrect device nodes in
        various ways, on on imx, berlin, exynos, ux500, uniphier, omap and
        meson.
      
        Chen-Yu Tsai now co-maintains mach-sunxi (Allwinner).
      
        Other bug fixes include
         - a partial revert of a broken tegra gpio patch
         - irq affinity for arm ccn
         - suspend on one Armada 385 machine
         - enable ZONE_DMA to avoid an OMAP crash for over 2GB RAM
         - turning on a regulator on beagleboard-x15 for HDMI
         - making the omap gpmc debug code visible
         - setup of orion network switch
         - a rare build regression for pxa"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits)
        ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init
        thermal: exynos: Fix register read in TMU
        ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory
        ARM: tegra: Comment out gpio-ranges properties
        ARM: dts: uniphier: fix IRQ number for devices on PH1-LD6b ref board
        drivers/perf: arm_pmu: avoid CPU device_node reference leak
        bus: arm-ccn: Fix irq affinity setting on CPU migration
        bus: arm-ccn: Handle correctly no-more-cpus case
        ARM: mvebu: correct a385-db-ap compatible string
        ARM: meson6: DTS: Fix wrong reg mapping and IRQ numbers
        MAINTAINERS: Update Allwinner entry and add new maintainer
        ARM: ux500: modify initial levelshifter status
        ARM: pxa: fix pxa3xx DFI lockup hack
        Documentation: ARM: List new omap MMC requirements
        memory: omap-gpmc: dump "before" state before first modification
        memory: omap-gpmc: Fix unselectable debug option for GPMC
        ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on
        ARM: dts: Fix audio card detection on Peach boards
        ARM: EXYNOS: Fix double of_node_put() when parsing child power domains
        ARM: orion: Fix DSA platform device after mvmdio conversion
        ...
      d0ddf980
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 2c44f4f0
      Linus Torvalds authored
      Pull KVM bugfixes from Paolo Bonzini:
       "Bug fixes for ARM, mostly 4.3 regressions related to virtual interrupt
        controller changes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        arm/arm64: KVM: Fix disabled distributor operation
        arm/arm64: KVM: Clear map->active on pend/active clear
        arm/arm64: KVM: Fix arch timer behavior for disabled interrupts
        KVM: arm: use GIC support unconditionally
        KVM: arm/arm64: Fix memory leak if timer initialization fails
        KVM: arm/arm64: Do not inject spurious interrupts
      2c44f4f0
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v4.3-rc6' of... · 8a990fb4
      Linus Torvalds authored
      Merge tag 'trace-fixes-v4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing fixes from Steven Rostedt:
       "Running tests on other changes, the system locked up due to lots of
        warnings.  It was caused by the stack tracer triggering a warning
        about using rcu_dereference() when RCU was not watching.  This can
        happen due to the fact that the stack tracer uses the function tracer
        to check each function, and there are functions that may be called and
        traced when RCU stopped watching.  Namely when a function is called
        just before going idle or to userspace and after RCU stopped watching
        that current CPU.
      
        The first patch makes sure that RCU is watching when the stack tracer
        uses RCU.  The second patch is to make sure that the stack tracer does
        not get called by functions in NMI, as it's not NMI safe"
      
      * tag 'trace-fixes-v4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Do not allow stack_tracer to record stack in NMI
        tracing: Have stack tracer force RCU to be watching
      8a990fb4
    • Linus Torvalds's avatar
      Merge tag 'sound-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 0122835a
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "There is nothing to worry you much, only a few small & stable patches
        are found for usual stuff, HD-audio (a Lenovo laptop quirk, a fix for
        minor error handling) and ASoC (trivial fixes for RT298 and WM
        codecs).
      
        The only remaining major change is the fix for ASoC SX_TLV control
        that was overseen during refactoring, but the fix itself is trivial
        and safe"
      
      * tag 'sound-4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: wm8962: mark cache_dirty flag after software reset in pm_resume
        ASoC: rt298: fix wrong setting of gpio2_en
        ASoC: wm8904: Correct number of EQ registers
        ALSA: hda - Fix deadlock at error in building PCM
        ASoC: Add info callback for SX_TLV controls
        ASoC: rt298: correct index default value
        ALSA: hda - Fix inverted internal mic on Lenovo G50-80
        ALSA: hdac: Explicitly add io.h
      0122835a
    • Linus Torvalds's avatar
      Merge tag 'media/v4.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 45d80f16
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "Some regression fixes and potential security issues:
      
         - netup_unidvb: fix potential crash when spi is NULL
         - rtl28xxu: fix control message flaws
         - m88ds3103: fix a regression on Kernel 4.2
         - c8sectpfe: fix some issues on this new driver
         - v4l2-flash-led-class: fix a Kbuild dependency
         - si2157 and si2158: check for array boundary when uploading firmware
           files
         - horus3a and lnbh25: fix some building troubles when some options
           aren't selected
         - ir-hix5hd2: drop the use of IRQF_NO_SUSPEND"
      
      * tag 'media/v4.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] m88ds3103: use own reg update_bits() implementation
        [media] rtl28xxu: fix control message flaws
        [media] v4l2-flash-led-class: Add missing VIDEO_V4L2 Kconfig dependency
        [media] netup_unidvb: fix potential crash when spi is NULL
        [media] si2168: Bounds check firmware
        [media] si2157: Bounds check firmware
        [media] ir-hix5hd2: drop the use of IRQF_NO_SUSPEND
        [media] c8sectpfe: fix return of garbage
        [media] c8sectpfe: fix ininitialized error return on firmware load failure
        [media] lnbh25: Fix lnbh25_attach() function return type
        [media] horus3a: Fix horus3a_attach() function parameters
      45d80f16
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · a67b20d2
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "I've been a bit slow gathering these:
      
         - drm/mst: one mutex leak in a fail path
      
         - radeon: two oops fixes, one dpm fix
      
         - i915: one messy set of fixes, where we revert the original fix, and
                 pull back the proper set of fixes from -next on top.
      
         - nouveau: one fix for an illegal buffer placement.
      
        Doesn't look too bad, hopefully shouldn't be too much more"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau/gem: return only valid domain when there's only one
        drm: fix mutex leak in drm_dp_get_mst_branch_device
        drm/amdgpu: add missing dpm check for KV dpm late init
        drm/amdgpu/dpm: don't add pwm attributes if DPM is disabled
        drm/radeon/dpm: don't add pwm attributes if DPM is disabled
        drm/i915: Add primary plane to mask if it's visible
        drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()
        drm/i915: Assign hwmode after encoder state readout
        Revert "drm/i915: Add primary plane to mask if it's visible"
        drm/i915: Deny wrapping an userptr into a framebuffer
        drm/i915: Enable DPLL VGA mode before P1/P2 divider write
        drm/i915: Restore lost DPLL register write on gen2-4
        drm/i915: Flush pipecontrol post-sync writes
        drm/i915: Fix kerneldoc for i915_gem_shrink_all
      a67b20d2
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v4.3-rc6' of... · b9b6e4ac
      Takashi Iwai authored
      Merge tag 'asoc-fix-v4.3-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v4.3
      
      A bunch of driver fixes plus one core fix which fixes problems with
      misreporting values from _SX controls following a recent refactoring.
      This had gone unnoticed as such controls are quite rare.
      b9b6e4ac
  2. 22 Oct, 2015 17 commits
  3. 21 Oct, 2015 14 commits
    • Dave Airlie's avatar
      Merge branch 'linux-4.3' of git://anongit.freedesktop.org/nouveau/linux-2.6 into drm-fixes · 37363bc0
      Dave Airlie authored
      Just one fix from Ilia to resolve various issues that have resulted from
      buffer eviction.
      
      * 'linux-4.3' of git://anongit.freedesktop.org/nouveau/linux-2.6:
        drm/nouveau/gem: return only valid domain when there's only one
      37363bc0
    • Ilia Mirkin's avatar
      drm/nouveau/gem: return only valid domain when there's only one · 2a6c521b
      Ilia Mirkin authored
      On nv50+, we restrict the valid domains to just the one where the buffer
      was originally created. However after the buffer is evicted to system
      memory, we might move it back to a different domain that was not
      originally valid. When sharing the buffer and retrieving its GEM_INFO
      data, we still want the domain that will be valid for this buffer in a
      pushbuf, not the one where it currently happens to be.
      
      This resolves fdo#92504 and several others. These are due to suspend
      evicting all buffers, making it more likely that they temporarily end up
      in the wrong place.
      
      Cc: stable@vger.kernel.org
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92504Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      2a6c521b
    • Adam Richter's avatar
      drm: fix mutex leak in drm_dp_get_mst_branch_device · 30730c7f
      Adam Richter authored
      In Linux 4.3-rc5, there is an error case in drm_dp_get_branch_device
      that returns without releasing mgr->lock, resulting a spew of kernel
      messages about a kernel work function possibly having leaked a mutex
      and presumably more serious adverse consequences later.  This patch
      changes the error to "goto out" to unlock the mutex before returning.
      
      [airlied: grabbed from drm-next as it fixes something we've seen]
      Signed-off-by: default avatarAdam J. Richter <adam_richter2004@yahoo.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      30730c7f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20151021' of git://git.infradead.org/intel-iommu · 8a70dd26
      Linus Torvalds authored
      Pull intel-iommu bugfix from David Woodhouse:
       "This contains a single fix, for when the IOMMU API is used to overlay
        an existing mapping comprised of 4KiB pages, with a mapping that can
        use superpages.
      
        For the *first* superpage in the new mapping, we were correctly¹
        freeing the old bottom-level page table page and clearing the link to
        it, before installing the superpage.  For subsequent superpages,
        however, we weren't.  This causes a memory leak, and a warning about
        setting a PTE which is already set.
      
        ¹ Well, not *entirely* correctly.  We just free the page table pages
          right there and then, which is wrong.  In fact they should only be
          freed *after* the IOTLB is flushed so we know the hardware will no
          longer be looking at them....  and in fact I note that the IOTLB
          flush is completely missing from the intel_iommu_map() code path,
          although it needs to be there if it's permitted to overwrite
          existing mappings.
      
          Fixing those is somewhat more intrusive though, and will probably
          need to wait for 4.4 at this point"
      
      * tag 'for-linus-20151021' of git://git.infradead.org/intel-iommu:
        iommu/vt-d: fix range computation when making room for large pages
      8a70dd26
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.3-rc5' of git://git.linaro.org/people/ulf.hansson/mmc · 7f677863
      Linus Torvalds authored
      Pull MMC bugfix from Ulf Hansson:
       "Here's yet another MMC fix intended for v4.3 rc7.  I don't expect to
        send any further pull requests for 4.3 rc[n].
      
        MMC core:
         - Don't re-tune in the reset sequence to allow re-init of the card"
      
      * tag 'mmc-v4.3-rc5' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: core: Fix init_card in 52Mhz
      7f677863
    • Paolo Bonzini's avatar
      Merge tag 'kvm-arm-for-v4.3-rc7' of... · ad355e38
      Paolo Bonzini authored
      Merge tag 'kvm-arm-for-v4.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master
      
      A late round of KVM/ARM fixes for v4.3-rc7, fixing:
       - A bug where level-triggered interrupts lowered from userspace
         are still routed to the guest
       - A memory leak an a failed initialization path
       - A build error under certain configurations
       - Several timer bugs introduced with moving the timer to the active
         state handling instead of the masking trick.
      ad355e38
    • Arnd Bergmann's avatar
      Merge tag 'mvebu-fixes-4.3-2' of git://git.infradead.org/linux-mvebu into fixes · 55f41297
      Arnd Bergmann authored
      Merge "mvebu fixes for 4.3 (part 2)" from Gregory CLEMENT:
      
      Fix wrong compatible for A385 DB AP preventing using suspend
      
      * tag 'mvebu-fixes-4.3-2' of git://git.infradead.org/linux-mvebu:
        ARM: mvebu: correct a385-db-ap compatible string
      55f41297
    • Arnd Bergmann's avatar
      Merge tag 'samsung-fixes-2' of... · 0690f4f2
      Arnd Bergmann authored
      Merge tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
      
      Merge "Samsung 2nd fixes for v4.3" from Kukjin Kim:
      
      - fix SOC detection of exynos thermal on exynos5260
      - fix audio card detection on Peach boards
      - fix double of_node_put() when parsing child power domains
      
      * tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        thermal: exynos: Fix register read in TMU
        ARM: dts: Fix audio card detection on Peach boards
        ARM: EXYNOS: Fix double of_node_put() when parsing child power domains
      0690f4f2
    • Arnd Bergmann's avatar
      Merge tag 'omap-for-v4.3/fixes-rc6' of... · 6701ef03
      Arnd Bergmann authored
      Merge tag 'omap-for-v4.3/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Merge "Fixes for omaps for v4.3-rc cycle" from Tony Lindgren:
      
      - Fix oops with LPAE and moew than 2GB of memory by enabling
        ZONE_DMA for LPAE. Probably no need for stable on this one as we
        only recently ran into this with the mainline kernel
      
      - Fix imprecise external abort caused by bogus SRAM init. This affects
        dm814x recently merged, so no need for stable on this one AFAIK
      
      * tag 'omap-for-v4.3/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init
        ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory
      6701ef03
    • Bard Liao's avatar
      ASoC: rt298: fix wrong setting of gpio2_en · f8f2dc4a
      Bard Liao authored
      The register value to enable gpio2 was incorrect. So fix it.
      Signed-off-by: default avatarBard Liao <bardliao@realtek.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      f8f2dc4a
    • Paul Mackerras's avatar
      powerpc/powernv: Handle irq_happened flag correctly in off-line loop · 53c656c4
      Paul Mackerras authored
      This fixes a bug where it is possible for an off-line CPU to fail to go
      into a low-power state (nap/sleep/winkle), and to become unresponsive to
      requests from the KVM subsystem to wake up and run a VCPU. What can
      happen is that a maskable interrupt of some kind (external, decrementer,
      hypervisor doorbell, or HMI) after we have called local_irq_disable() at
      the beginning of pnv_smp_cpu_kill_self() and before interrupts are
      hard-disabled inside power7_nap/sleep/winkle(). In this situation, the
      pending event is marked in the irq_happened flag in the PACA. This
      pending event prevents power7_nap/sleep/winkle from going to the
      requested low-power state; instead they return immediately. We don't
      deal with any of these pending event flags in the off-line loop in
      pnv_smp_cpu_kill_self() because power7_nap et al. return 0 in this case,
      so we will have srr1 == 0, and none of the processing to clear
      interrupts or doorbells will be done.
      
      Usually, the most obvious symptom of this is that a KVM guest will fail
      with a console message saying "KVM: couldn't grab cpu N".
      
      This fixes the problem by making sure we handle the irq_happened flags
      properly. First, we hard-disable before the off-line loop. Once we have
      hard-disabled, the irq_happened flags can't change underneath us. We
      unconditionally clear the DEC and HMI flags: there is no processing of
      timer interrupts while off-line, and the necessary HMI processing is all
      done in lower-level code. We leave the EE and DBELL flags alone for the
      first iteration of the loop, so that we won't fail to respond to a
      split-core request that came in just before hard-disabling. Within the
      loop, we handle external interrupts if the EE bit is set in irq_happened
      as well as if the low-power state was interrupted by an external
      interrupt. (We don't need to do the msgclr for a pending doorbell in
      irq_happened, because doorbells are edge-triggered and don't remain
      pending in hardware.) Then we clear both the EE and DBELL flags, and
      once clear, they cannot be set again (until this CPU comes online again,
      that is).
      
      This also fixes the debug check to not be done when we just ran a KVM
      guest or when the sleep didn't happen because of a pending event in
      irq_happened.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      53c656c4
    • Paul Mackerras's avatar
      powerpc: Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8" · 23316316
      Paul Mackerras authored
      This reverts commit 9678cdaa ("Use the POWER8 Micro Partition
      Prefetch Engine in KVM HV on POWER8") because the original commit had
      multiple, partly self-cancelling bugs, that could cause occasional
      memory corruption.
      
      In fact the logmpp instruction was incorrectly using register r0 as the
      source of the buffer address and operation code, and depending on what
      was in r0, it would either do nothing or corrupt the 64k page pointed to
      by r0.
      
      The logmpp instruction encoding and the operation code definitions could
      be corrected, but then there is the problem that there is no clearly
      defined way to know when the hardware has finished writing to the
      buffer.
      
      The original commit attempted to work around this by aborting the
      write-out before starting the prefetch, but this is ineffective in the
      case where the virtual core is now executing on a different physical
      core from the one where the write-out was initiated.
      
      These problems plus advice from the hardware designers not to use the
      function (since the measured performance improvement from using the
      feature was actually mostly negative), mean that reverting the code is
      the best option.
      
      Fixes: 9678cdaa ("Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8")
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      23316316
    • Chaotian Jing's avatar
      mmc: core: Fix init_card in 52Mhz · 08b137d9
      Chaotian Jing authored
      Suppose that we got a data crc error, and it triggers the mmc_reset.
      mmc_reset will call mmc_send_status to see if HW reset was supported.
      before issue CMD13, it will do retune, and if EMMC was in HS400 mode,
      it will reduce frequency to 52Mhz firstly, then results in card init
      was doing at 52Mhz.
      The mmc_send_status was originally only done for mmc_test, should drop
      it. And, rename the "eMMC hardware reset" to "Reset test", as we would
      also be able to use the test for SD-cards.
      Signed-off-by: default avatarChaotian Jing <chaotian.jing@mediatek.com>
      Suggested-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Fixes: bd11e8bd ("mmc: core: Flag re-tuning is needed on CRC errors")
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      08b137d9
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Do not allow stack_tracer to record stack in NMI · 1904be1b
      Steven Rostedt (Red Hat) authored
      The code in stack tracer should not be executed within an NMI as it grabs
      spinlocks and stack tracing an NMI gives the possibility of causing a
      deadlock. Although this is safe on x86_64, because it does not perform stack
      traces when the task struct stack is not in use (interrupts and NMIs), it
      may be an issue for NMIs on i386 and other archs that use the same stack as
      the NMI.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      1904be1b
  4. 20 Oct, 2015 1 commit
    • Christoffer Dall's avatar
      arm/arm64: KVM: Fix disabled distributor operation · 0d997491
      Christoffer Dall authored
      We currently do a single update of the vgic state when the distributor
      enable/disable control register is accessed and then bypass updating the
      state for as long as the distributor remains disabled.
      
      This is incorrect, because updating the state does not consider the
      distributor enable bit, and this you can end up in a situation where an
      interrupt is marked as pending on the CPU interface, but not pending on
      the distributor, which is an impossible state to be in, and triggers a
      warning.  Consider for example the following sequence of events:
      
      1. An interrupt is marked as pending on the distributor
         - the interrupt is also forwarded to the CPU interface
      2. The guest turns off the distributor (it's about to do a reboot)
         - we stop updating the CPU interface state from now on
      3. The guest disables the pending interrupt
         - we remove the pending state from the distributor, but don't touch
           the CPU interface, see point 2.
      
      Since the distributor disable bit really means that no interrupts should
      be forwarded to the CPU interface, we modify the code to keep updating
      the internal VGIC state, but always set the CPU interface pending bits
      to zero when the distributor is disabled.
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      0d997491