1. 30 May, 2014 1 commit
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · fe45736f
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "The usual random collection of relatively small ARM fixes"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8063/1: bL_switcher: fix individual online status reporting of removed CPUs
        ARM: 8064/1: fix v7-M signal return
        ARM: 8057/1: amba: Add Qualcomm vendor ID.
        ARM: 8052/1: unwind: Fix handling of "Pop r4-r[4+nnn],r14" opcode
        ARM: 8051/1: put_user: fix possible data corruption in put_user
        ARM: 8048/1: fix v7-M setup stack location
      fe45736f
  2. 29 May, 2014 4 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · a991639c
      Linus Torvalds authored
      Pull arm64 fix from Will Deacon:
       "Fix CoW regression for transparent hugepages by routing set_pmd_at to
        set_pte_at, which correctly handles PTE_WRITE and will mark the
        resulting table entry as read-only where appropriate"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: mm: fix pmd_write CoW brokenness
      a991639c
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.15-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f035b3d3
      Linus Torvalds authored
      Pull ACPI and power management fixes from Rafael Wysocki:
       "These are three stable-candidate fixes, one for the ACPI thermal
        driver and two for cpufreq drivers.
      
        Specifics:
      
         - A workqueue is destroyed too early during the ACPI thermal driver
           module unload which leads to a NULL pointer dereference in the
           driver's remove callback.  Fix from Aaron Lu.
      
         - A wrong argument is passed to devm_regulator_get_optional() in the
           probe routine of the cpu0 cpufreq driver which leads to resource
           leaks if the driver is unbound from the cpufreq platform device.
           Fix from Lucas Stach.
      
         - A lock is missing in cpufreq_governor_dbs() which leads to memory
           corruption and NULL pointer dereferences during system
           suspend/resume, for example.  Fix from Bibek Basu"
      
      * tag 'pm+acpi-3.15-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / thermal: fix workqueue destroy order
        cpufreq: cpu0: drop wrong devm usage
        cpufreq: remove race while accessing cur_policy
      f035b3d3
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mike.turquette/linux · 15a7b60e
      Linus Torvalds authored
      Pull clock fixes from Mike Turquette:
       "Small number of user-visible regression fixes for clock drivers.
      
        There is a memory leak fix for an ST platform, an infinite Loop Of
        Doom fix for the recent changes to the basic clock divider (hopefully
        the last fix for those recent changes) and some Tegra PLL changes
        which keep PCI from being hosed on that platform"
      
      * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mike.turquette/linux:
        clk: st: Fix memory leak
        clk: divider: Fix table round up function
        clk: tegra: Fix enabling of PLLE
        clk: tegra: Introduce divider mask and shift helpers
        clk: tegra: Fix PLLE programming
      15a7b60e
    • Will Deacon's avatar
      arm64: mm: fix pmd_write CoW brokenness · ceb21835
      Will Deacon authored
      Commit 9c7e535f ("arm64: mm: Route pmd thp functions through pte
      equivalents") changed the pmd manipulator and accessor functions to
      convert the target pmd to a pte, process it with the pte functions, then
      convert it back. Along the way, we gained support for PTE_WRITE, however
      this is completely ignored by set_pmd_at, and so we fail to set the
      PMD_SECT_RDONLY for PMDs, resulting in all sorts of lovely failures (like
      CoW not working).
      
      Partially reverting the offending commit (by making use of
      PMD_SECT_RDONLY explicitly for pmd_{write,wrprotect,mkwrite} functions)
      leads to further issues because pmd_write can then return potentially
      incorrect values for page table entries marked as RDONLY, leading to
      BUG_ON(pmd_write(entry)) tripping under some THP workloads.
      
      This patch fixes the issue by routing set_pmd_at through set_pte_at,
      which correctly takes the PTE_WRITE flag into account. Given that
      THP mappings are always anonymous, the additional cache-flushing code
      in __sync_icache_dcache won't impose any significant overhead as the
      flush will be skipped.
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Acked-by: default avatarSteve Capper <steve.capper@arm.com>
      Tested-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      ceb21835
  3. 28 May, 2014 9 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-3.15-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · f2159d1e
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Just two small stable fixes: an HD-audio fix for the new Intel
        chipsets and a PM handling fix in PCM dmaengine core"
      
      * tag 'sound-3.15-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets
        ALSA: pcm_dmaengine: Add check during device suspend
      f2159d1e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 28269580
      Linus Torvalds authored
      Pull vfs fix from Al Viro:
       "Oh, well...  Still nothing useful on that livelock (I had something
        that looked kinda-sorta like a non-invasive solution, but it
        deadlocks), so it's just Miklos' vmsplice fix for now"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: fix vmplice_to_user()
      28269580
    • Nicolas Pitre's avatar
      ARM: 8063/1: bL_switcher: fix individual online status reporting of removed CPUs · 3f8517e7
      Nicolas Pitre authored
      The content of /sys/devices/system/cpu/cpu*/online  is still 1 for those
      CPUs that the switcher has removed even though the global state in
      /sys/devices/system/cpu/online is updated correctly.
      
      It turns out that commit 0902a904 ("Driver core: Use generic
      offline/online for CPU offline/online") has changed the way those files
      retrieve their content by relying on on the generic attribute handling
      code.  The switcher, by calling cpu_down() directly, bypasses this
      handling and the attribute value doesn't get updated.
      
      Fix this by calling device_offline()/device_online() instead.
      Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      3f8517e7
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 4efdedca
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "Small fixes for x86, slightly larger fixes for PPC, and a forgotten
        s390 patch.  The PPC fixes are important because they fix breakage
        that is new in 3.15"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: s390: announce irqfd capability
        KVM: x86: disable master clock if TSC is reset during suspend
        KVM: vmx: disable APIC virtualization in nested guests
        KVM guest: Make pv trampoline code executable
        KVM: PPC: Book3S: ifdef on CONFIG_KVM_BOOK3S_32_HANDLER for 32bit
        KVM: PPC: Book3S HV: Add missing code for transaction reclaim on guest exit
        KVM: PPC: Book3S: HV: make _PAGE_NUMA take effect
      4efdedca
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 9e3d6331
      Linus Torvalds authored
      Pull two powerpc fixes from Ben Herrenschmidt:
       "Here's a pair of powerpc fixes for 3.15 which are also going to
        stable.
      
        One's a fix for building with newer binutils (the problem currently
        only affects the BookE kernels but the affected macro might come back
        into use on BookS platforms at any time).  Unfortunately, the binutils
        maintainer did a backward incompatible change to a construct that we
        use so we have to add Makefile check.
      
        The other one is a fix for CPUs getting stuck in kexec when running
        single threaded.  Since we routinely use kexec on power (including in
        our newer bootloaders), I deemed that important enough"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode
        powerpc: Fix 64 bit builds with binutils 2.24
      9e3d6331
    • Miklos Szeredi's avatar
      vfs: fix vmplice_to_user() · b6dd6f47
      Miklos Szeredi authored
      Commit 6130f531 "switch vmsplice_to_user() to copy_page_to_iter()" in
      v3.15-rc1 broke vmsplice(2).
      
      This patch fixes two bugs:
      
       - count is not initialized to a proper value, which resulted in no data
         being copied
      
       - if rw_copy_check_uvector() returns negative then the iov might be leaked.
      
      Tested OK.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b6dd6f47
    • Mike Turquette's avatar
      Merge tag 'clk-tegra-fixes-3.15' of... · 51784380
      Mike Turquette authored
      Merge tag 'clk-tegra-fixes-3.15' of git://nv-tegra.nvidia.com/user/pdeschrijver/linux into clk-fixes
      
      PLLE fixes for 3.15
      51784380
    • Srivatsa S. Bhat's avatar
      powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST mode · 011e4b02
      Srivatsa S. Bhat authored
      If we try to perform a kexec when the machine is in ST (Single-Threaded) mode
      (ppc64_cpu --smt=off), the kexec operation doesn't succeed properly, and we
      get the following messages during boot:
      
      [    0.089866] POWER8 performance monitor hardware support registered
      [    0.089985] power8-pmu: PMAO restore workaround active.
      [    5.095419] Processor 1 is stuck.
      [   10.097933] Processor 2 is stuck.
      [   15.100480] Processor 3 is stuck.
      [   20.102982] Processor 4 is stuck.
      [   25.105489] Processor 5 is stuck.
      [   30.108005] Processor 6 is stuck.
      [   35.110518] Processor 7 is stuck.
      [   40.113369] Processor 9 is stuck.
      [   45.115879] Processor 10 is stuck.
      [   50.118389] Processor 11 is stuck.
      [   55.120904] Processor 12 is stuck.
      [   60.123425] Processor 13 is stuck.
      [   65.125970] Processor 14 is stuck.
      [   70.128495] Processor 15 is stuck.
      [   75.131316] Processor 17 is stuck.
      
      Note that only the sibling threads are stuck, while the primary threads (0, 8,
      16 etc) boot just fine. Looking closer at the previous step of kexec, we observe
      that kexec tries to wakeup (bring online) the sibling threads of all the cores,
      before performing kexec:
      
      [ 9464.131231] Starting new kernel
      [ 9464.148507] kexec: Waking offline cpu 1.
      [ 9464.148552] kexec: Waking offline cpu 2.
      [ 9464.148600] kexec: Waking offline cpu 3.
      [ 9464.148636] kexec: Waking offline cpu 4.
      [ 9464.148671] kexec: Waking offline cpu 5.
      [ 9464.148708] kexec: Waking offline cpu 6.
      [ 9464.148743] kexec: Waking offline cpu 7.
      [ 9464.148779] kexec: Waking offline cpu 9.
      [ 9464.148815] kexec: Waking offline cpu 10.
      [ 9464.148851] kexec: Waking offline cpu 11.
      [ 9464.148887] kexec: Waking offline cpu 12.
      [ 9464.148922] kexec: Waking offline cpu 13.
      [ 9464.148958] kexec: Waking offline cpu 14.
      [ 9464.148994] kexec: Waking offline cpu 15.
      [ 9464.149030] kexec: Waking offline cpu 17.
      
      Instrumenting this piece of code revealed that the cpu_up() operation actually
      fails with -EBUSY. Thus, only the primary threads of all the cores are online
      during kexec, and hence this is a sure-shot receipe for disaster, as explained
      in commit e8e5c215 (powerpc/kexec: Fix orphaned offline CPUs across kexec),
      as well as in the comment above wake_offline_cpus().
      
      It turns out that cpu_up() was returning -EBUSY because the variable
      'cpu_hotplug_disabled' was set to 1; and this disabling of CPU hotplug was done
      by migrate_to_reboot_cpu() inside kernel_kexec().
      
      Now, migrate_to_reboot_cpu() was originally written with the assumption that
      any further code will not need to perform CPU hotplug, since we are anyway in
      the reboot path. However, kexec is clearly not such a case, since we depend on
      onlining CPUs, atleast on powerpc.
      
      So re-enable cpu-hotplug after returning from migrate_to_reboot_cpu() in the
      kexec path, to fix this regression in kexec on powerpc.
      
      Also, wrap the cpu_up() in powerpc kexec code within a WARN_ON(), so that we
      can catch such issues more easily in the future.
      
      Fixes: c97102ba (kexec: migrate to reboot cpu)
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      011e4b02
    • Guenter Roeck's avatar
      powerpc: Fix 64 bit builds with binutils 2.24 · 7998eb3d
      Guenter Roeck authored
      With binutils 2.24, various 64 bit builds fail with relocation errors
      such as
      
      arch/powerpc/kernel/built-in.o: In function `exc_debug_crit_book3e':
      	(.text+0x165ee): relocation truncated to fit: R_PPC64_ADDR16_HI
      	against symbol `interrupt_base_book3e' defined in .text section
      	in arch/powerpc/kernel/built-in.o
      arch/powerpc/kernel/built-in.o: In function `exc_debug_crit_book3e':
      	(.text+0x16602): relocation truncated to fit: R_PPC64_ADDR16_HI
      	against symbol `interrupt_end_book3e' defined in .text section
      	in arch/powerpc/kernel/built-in.o
      
      The assembler maintainer says:
      
       I changed the ABI, something that had to be done but unfortunately
       happens to break the booke kernel code.  When building up a 64-bit
       value with lis, ori, shl, oris, ori or similar sequences, you now
       should use @high and @higha in place of @h and @ha.  @h and @ha
       (and their associated relocs R_PPC64_ADDR16_HI and R_PPC64_ADDR16_HA)
       now report overflow if the value is out of 32-bit signed range.
       ie. @h and @ha assume you're building a 32-bit value. This is needed
       to report out-of-range -mcmodel=medium toc pointer offsets in @toc@h
       and @toc@ha expressions, and for consistency I did the same for all
       other @h and @ha relocs.
      
      Replacing @h with @high in one strategic location fixes the relocation
      errors. This has to be done conditionally since the assembler either
      supports @h or @high but not both.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7998eb3d
  4. 27 May, 2014 7 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · cd79bde2
      Linus Torvalds authored
      Pull virtio_blk fix from Jens Axboe:
       "There's a start/stop queue race in virtio_blk, which causes stalls and
        erratic behaviour for some.  I've had this queued up for 3.16 for a
        while, but I think we should push it into the current series as well.
      
        So I cherry picked the commit and added a stable marker as well, so it
        can propagate down"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        virtio_blk: fix race between start and stop queue
      cd79bde2
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aa699a1d
      Linus Torvalds authored
      Pull two timer fixes from Thomas Gleixner:
       "Two small fixlets for ARM SoC clocksource drivers:
      
         - avoid calling functions which might sleep from interrupt [disabled]
           context in tcb_clksrc used on Atmel SoCs
      
         - use irq_force_affinity() to pin the per cpu timer interrupt on a
           not yet online cpu in the SiRFprimaII driver"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource: tcb_clksrc: Make tc_mode interrupt safe
        clocksource: marco: Fix the affinity set for local timer of CPU1
      aa699a1d
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 758b6712
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A slightly larger set of fixes than we'd like at this point in the
        release.  Hopefully our very last batch before 3.15:
      
        OMAP:
         - Fix boot regression with CPU_IDLE enabled
         - Fixes for audio playback on OMAP5
         - Clock rate setting fix for OMAP3
         - Misc idle/PM fixes
        Exynos:
         - Removal of a couple of power domains to work around issues with
           access when they are powered down
         - Enabling missing highspeed-i2c driver to make MMC regulators work
         - Secondary CPU spin-up fix for 4212
         - Remove MDMA1 engine to avoid conflicts on secure mode platforms
         - A few other DT fixes
        Marvell:
         - PCI-e fixes for clocks and resource allocation
      
        plus a few other smaller fixes, add a MAINTAINERS entry for reset
        drivers, etc"
      
      * tag 'fixes-for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits)
        MAINTAINERS: Add reset controller framework entry
        ARM: trusted_foundations: fix compile error on non-SMP
        ARM: at91: sam9260: fix compilation issues
        ARM: mvebu: fix definitions of PCIe interfaces on Armada 38x
        ARM: imx: fix error handling in ipu device registration
        ARM: OMAP4: Fix the boot regression with CPU_IDLE enabled
        ARM: dts: Keep LDO4 always ON for exynos5250-arndale board
        ARM: dts: Fix SPI interrupt numbers for exynos5420
        ARM: dts: fix incorrect ak8975 compatible for exynos4412-trats2 board
        ARM: OMAP2+: Fix DMA hang after off-idle
        ARM: OMAP2+: nand: Fix NAND on OMAP2 and OMAP3 boards
        ARM: dts: Remove g2d_pd node for exynos5420
        ARM: dts: Remove mau_pd node for exynos5420
        ARM: exynos_defconfig: enable HS-I2C to fix for mmc partition mount
        ARM: dts: disable MDMA1 node for exynos5420
        ARM: EXYNOS: fix the secondary CPU boot of exynos4212
        ARM: omap5: hwmod_data: Correct IDLEMODE for McPDM
        ARM: mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled
        ARM: mvebu: mvebu-soc-id: add missing clk_put() call
        ARM: at91/dt: sam9260: correct external trigger value
        ...
      758b6712
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v3.15-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 51d56652
      Linus Torvalds authored
      Pull pinctrl fix from Linus Walleij:
       "A single last pinctrl fix for the v3.15 series: the vt8500 driver was
        failing to update the output value when the combined set direction
        output and set value was executed"
      
      * tag 'pinctrl-v3.15-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: vt8500: Ensure value reg is updated when setting direction
      51d56652
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma · c949ddf9
      Linus Torvalds authored
      Pull slave-dmaengine fixes from Vinod Koul:
       "We have three small fixes.
      
        First one from Andy reverts the devm_request irq as we need to ensure
        the tasklet is killed after irq is freed, so we need to do free irq in
        our code.  Other two from Arnd are fixing the compilation issue in
        omap and sa11x0 drivers with ARM randconfigs"
      
      * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: sa11x0: remove broken #ifdef
        dmaengine: omap: hide filter_fn for built-in drivers
        dmaengine: dw: went back to plain {request,free}_irq() calls
      c949ddf9
    • Philipp Zabel's avatar
      1b0fe6be
    • Ming Lei's avatar
      virtio_blk: fix race between start and stop queue · aa0818c6
      Ming Lei authored
      When there isn't enough vring descriptor for adding to vq,
      blk-mq will be put as stopped state until some of pending
      descriptors are completed & freed.
      
      Unfortunately, the vq's interrupt may come just before
      blk-mq's BLK_MQ_S_STOPPED flag is set, so the blk-mq will
      still be kept as stopped even though lots of descriptors
      are completed and freed in the interrupt handler. The worst
      case is that all pending descriptors are freed in the
      interrupt handler, and the queue is kept as stopped forever.
      
      This patch fixes the problem by starting/stopping blk-mq
      with holding vq_lock.
      
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      
      Conflicts:
      	drivers/block/virtio_blk.c
      aa0818c6
  5. 26 May, 2014 2 commits
  6. 25 May, 2014 17 commits