1. 11 Apr, 2014 15 commits
    • Miklos Szeredi's avatar
      i386: Wire up the renameat2() syscall · ab0a9358
      Miklos Szeredi authored
      The renameat2() system call was only wired up for x86-64.
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Link: http://lkml.kernel.org/r/1397211951-20549-2-git-send-email-miklos@szeredi.hu
      Cc: H. Peter Anvin <hpa@zytor.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      ab0a9358
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 79d2d21e
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A few driver specific fixes, the main one being the fix for handling
        of complete callbacks that are open coded in individual drivers to
        allow callers to omit the completion.  As we move things into the core
        that sort of issue should become less and less common"
      
      * tag 'spi-v3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: qup: Depend on ARCH_QCOM
        spi: efm32: Update binding document to make "efm32,location" property optional
        spi: omap2-mcspi: Convert to use devm_kcalloc
        spi: Always check complete callback before calling it
      79d2d21e
    • Linus Torvalds's avatar
      Merge tag 'regulator-v3.15-fixes' of... · c0c4cf06
      Linus Torvalds authored
      Merge tag 'regulator-v3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fixes from Mark Brown:
       "A few driver specific fixes that have come in over the merge window,
        all only relevant for the specific driver"
      
      * tag 'regulator-v3.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: bcm590xx: Set n_voltages for linear reg
        regulator: s5m8767: Fix carried over ena_gpio assignment
        regulator: s2mps11: Don't check enable_shift before setting enable ramp rate
        regulator: s2mpa01: Don't check enable_shift before setting enable ramp rate
      c0c4cf06
    • Linus Torvalds's avatar
      Merge tag 'regmap-v3.15-nodev' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 4b44e7b1
      Linus Torvalds authored
      Pull regmap fix from Mark Brown:
       "regmap: Fix for nodev mode
      
        Add mising braces so that the nodev mode actually works (which was a
        bit of an oversight)"
      
      Testing schmesting.  We don't need not steenking testing.  We have
      deadlines to beat, and new code to write.
      
      * tag 'regmap-v3.15-nodev' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: adds missing braces in regmap_init()
      4b44e7b1
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · eeb91e4f
      Linus Torvalds authored
      Pull more ACPI and power management fixes and updates from Rafael Wysocki:
       "This is PM and ACPI material that has emerged over the last two weeks
        and one fix for a CPU hotplug regression introduced by the recent CPU
        hotplug notifiers registration series.
      
        Included are intel_idle and turbostat updates from Len Brown (these
        have been in linux-next for quite some time), a new cpufreq driver for
        powernv (that might spend some more time in linux-next, but BenH was
        asking me so nicely to push it for 3.15 that I couldn't resist), some
        cpufreq fixes and cleanups (including fixes for some silly breakage in
        a couple of cpufreq drivers introduced during the 3.14 cycle),
        assorted ACPI cleanups, wakeup framework documentation fixes, a new
        sysfs attribute for cpuidle and a new command line argument for power
        domains diagnostics.
      
        Specifics:
      
         - Fix for a recently introduced CPU hotplug regression in ARM KVM
           from Ming Lei.
      
         - Fixes for breakage in the at32ap, loongson2_cpufreq, and unicore32
           cpufreq drivers introduced during the 3.14 cycle (-stable material)
           from Chen Gang and Viresh Kumar.
      
         - New powernv cpufreq driver from Vaidyanathan Srinivasan, with bits
           from Gautham R Shenoy and Srivatsa S Bhat.
      
         - Exynos cpufreq driver fix preventing it from being included into
           multiplatform builds that aren't supported by it from Sachin Kamat.
      
         - cpufreq cleanups related to the usage of the driver_data field in
           struct cpufreq_frequency_table from Viresh Kumar.
      
         - cpufreq ppc driver cleanup from Sachin Kamat.
      
         - Intel BayTrail support for intel_idle and ACPI idle from Len Brown.
      
         - Intel CPU model 54 (Atom N2000 series) support for intel_idle from
           Jan Kiszka.
      
         - intel_idle fix for Intel Ivy Town residency targets from Len Brown.
      
         - turbostat updates (Intel Broadwell support and output cleanups)
           from Len Brown.
      
         - New cpuidle sysfs attribute for exporting C-states' target
           residency information to user space from Daniel Lezcano.
      
         - New kernel command line argument to prevent power domains enabled
           by the bootloader from being turned off even if they are not in use
           (for diagnostics purposes) from Tushar Behera.
      
         - Fixes for wakeup sysfs attributes documentation from Geert
           Uytterhoeven.
      
         - New ACPI video blacklist entry for ThinkPad Helix from Stephen
           Chandler Paul.
      
         - Assorted ACPI cleanups and a Kconfig help update from Jonghwan
           Choi, Zhihui Zhang, Hanjun Guo"
      
      * tag 'pm+acpi-3.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (28 commits)
        ACPI: Update the ACPI spec information in Kconfig
        arm, kvm: fix double lock on cpu_add_remove_lock
        cpuidle: sysfs: Export target residency information
        cpufreq: ppc: Remove duplicate inclusion of fsl_soc.h
        cpufreq: create another field .flags in cpufreq_frequency_table
        cpufreq: use kzalloc() to allocate memory for cpufreq_frequency_table
        cpufreq: don't print value of .driver_data from core
        cpufreq: ia64: don't set .driver_data to index
        cpufreq: powernv: Select CPUFreq related Kconfig options for powernv
        cpufreq: powernv: Use cpufreq_frequency_table.driver_data to store pstate ids
        cpufreq: powernv: cpufreq driver for powernv platform
        cpufreq: at32ap: don't declare local variable as static
        cpufreq: loongson2_cpufreq: don't declare local variable as static
        cpufreq: unicore32: fix typo issue for 'clk'
        cpufreq: exynos: Disable on multiplatform build
        PM / wakeup: Correct presence vs. emptiness of wakeup_* attributes
        PM / domains: Add pd_ignore_unused to keep power domains enabled
        ACPI / dock: Drop dock_device_ids[] table
        ACPI / video: Favor native backlight interface for ThinkPad Helix
        ACPI / thermal: Fix wrong variable usage in debug statement
        ...
      eeb91e4f
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 40e9963e
      Linus Torvalds authored
      Pullx86 core platform updates from Peter Anvin:
       "This is the x86/platform branch with the objectionable IOSF patches
        removed.
      
        What is left is proper memory handling for Intel GPUs, and a change to
        the Calgary IOMMU code which will be required to make kexec work
        sanely on those platforms after some upcoming kexec changes"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, calgary: Use 8M TCE table size by default
        x86/gpu: Print the Intel graphics stolen memory range
        x86/gpu: Add Intel graphics stolen memory quirk for gen2 platforms
        x86/gpu: Add vfunc for Intel graphics stolen memory base address
      40e9963e
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8eab6cd0
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "This is a collection of minor fixes for x86, plus the IRET information
        leak fix (forbid the use of 16-bit segments in 64-bit mode)"
      
      NOTE! We may have to relax the "forbid the use of 16-bit segments in
      64-bit mode" part, since there may be people who still run and depend on
      16-bit Windows binaries under Wine.
      
      But I'm taking this in the current unconditional form for now to see who
      (if anybody) screams bloody murder.  Maybe nobody cares.  And maybe
      we'll have to update it with some kind of runtime enablement (like our
      vm.mmap_min_addr tunable that people who run dosemu/qemu/wine already
      need to tweak).
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels
        efi: Pass correct file handle to efi_file_{read,close}
        x86/efi: Correct EFI boot stub use of code32_start
        x86/efi: Fix boot failure with EFI stub
        x86/platform/hyperv: Handle VMBUS driver being a module
        x86/apic: Reinstate error IRQ Pentium erratum 3AP workaround
        x86, CMCI: Add proper detection of end of CMCI storms
      8eab6cd0
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · ede1d63f
      Linus Torvalds authored
      Pull second set of ARM changes from Russell King:
       "This is the remainder of the ARM changes for this merge window.
        Included in this request are:
      
         - fixes for kprobes for big-endian support
         - fix tracing in soft_restart
         - avoid phys address overflow in kdump code
         - fix reporting of read-only pmd bits in kernel page table dump
         - remove unnecessary (and possibly buggy) call to outer_flush_all()
         - fix a three sparse warnings (missing header file for function
           prototypes)
         - fix pj4 crashing single zImage (thanks to arm-soc merging changes
           which enables this with knowledge that the corresponding fix had
           not even been submitted for my tree before the merge window opened)
         - vfp macro cleanups
         - dump register state on undefined instruction userspace faults when
           debugging"
      
      * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        Dump the registers on undefined instruction userspace faults
        ARM: 8018/1: Add {inc,dec}_preempt_count asm macros
        ARM: 8017/1: Move asm macro get_thread_info to asm/assembler.h
        ARM: 8016/1: Check cpu id in pj4_cp0_init.
        ARM: 8015/1: Add cpu_is_pj4 to distinguish PJ4 because it has some differences with V7
        ARM: add missing system_misc.h include to process.c
        ARM: 8009/1: dcscb.c: remove call to outer_flush_all()
        ARM: 8014/1: mm: fix reporting of read-only PMD bits
        ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr
        ARM: 8010/1: avoid tracers in soft_restart
        ARM: kprobes-test: Workaround GAS .align bug
        ARM: kprobes-test: use <asm/opcodes.h> for Thumb instruction building
        ARM: kprobes-test: use <asm/opcodes.h> for ARM instruction building
        ARM: kprobes-test: use <asm/opcodes.h> for instruction accesses
        ARM: probes: fix instruction fetch order with <asm/opcodes.h>
      ede1d63f
    • Linus Torvalds's avatar
      Merge tag 'microblaze-3.15-rc1' of git://git.monstr.eu/linux-2.6-microblaze · b42e6dc6
      Linus Torvalds authored
      Pull Microblaze updates from Michal Simek:
       - use asm-generic/io.h and fix intc/timer code
       - clean platform handling
       - enable some syscalls
      
      * tag 'microblaze-3.15-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Use asm-generic/io.h
        microblaze: Remove platform folder
        microblaze: Remove generic platform
        microblaze: Sort Kconfig options
        microblaze: Move DTS file to common location at boot/dts folder
        microblaze: Fix compilation failure because of release_thread
        microblaze: Fix sparse warning because of missing cpu.h header
        microblaze: Make timer driver endian aware
        microblaze: Make intc driver endian aware
        microblaze: Wire-up new system calls sched_setattr/getattr
        microblaze: Wire-up preadv/pwritev in syscall table
        microblaze: Enable pselect6 syscall
        microblaze: Drop architecture-specific declaration of early_printk
        microblaze: Rename global function heartbeat()
      b42e6dc6
    • H. Peter Anvin's avatar
      x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels · b3b42ac2
      H. Peter Anvin authored
      The IRET instruction, when returning to a 16-bit segment, only
      restores the bottom 16 bits of the user space stack pointer.  We have
      a software workaround for that ("espfix") for the 32-bit kernel, but
      it relies on a nonzero stack segment base which is not available in
      32-bit mode.
      
      Since 16-bit support is somewhat crippled anyway on a 64-bit kernel
      (no V86 mode), and most (if not quite all) 64-bit processors support
      virtualization for the users who really need it, simply reject
      attempts at creating a 16-bit segment when running on top of a 64-bit
      kernel.
      
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      Link: http://lkml.kernel.org/n/tip-kicdm89kzw9lldryb1br9od0@git.kernel.org
      Cc: <stable@vger.kernel.org>
      b3b42ac2
    • Russell King's avatar
      Merge branch 'devel-stable' into for-next · 98f07013
      Russell King authored
      98f07013
    • Russell King's avatar
      53f1d9af
    • Russell King's avatar
    • Ingo Molnar's avatar
      Merge tag 'efi-urgent' of... · 3151b942
      Ingo Molnar authored
      Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent
      
      Pull EFI fixes from Matt Fleming:
      
      "* Fix EFI boot regression introduced during the merge window where the
         firmware was reading random values from the stack because we were
         passing a pointer to the wrong object type.
      
       * Kernel corruption has been reported when booting with the EFI boot
         stub which was tracked down to setting a bogus value for
         bp->hdr.code32_start, resulting in corruption during relocation.
      
       * Olivier Martin reported that the wrong file handles were being passed
         to efi_file_(read|close), which works for x86 by luck due to the way
         that the FAT driver is implemented, but doesn't work on ARM."
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      3151b942
    • WANG Chao's avatar
      x86, calgary: Use 8M TCE table size by default · 0534af01
      WANG Chao authored
      New kexec-tools wants to pass kdump kernel needed memmap via E820
      directly, instead of memmap=exactmap. This makes saved_max_pfn not
      be passed down to 2nd kernel. To keep 1st kernel and 2nd kernel using
      the same TCE table size, Muli suggest to hard code the size to max (8M).
      
      We can't get rid of saved_max_pfn this time, for backward compatibility
      with old first kernel and new second kernel. However new first kernel
      and old second kernel can not work unfortunately.
      
      v2->v1:
      - retain saved_max_pfn so new 2nd kernel can work with old 1st kernel
        from Vivek
      Signed-off-by: default avatarWANG Chao <chaowang@redhat.com>
      Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Acked-by: default avatarMuli Ben-Yehuda <mulix@mulix.org>
      Acked-by: default avatarJon Mason <jdmason@kudzu.us>
      Link: http://lkml.kernel.org/r/1394463120-26999-1-git-send-email-chaowang@redhat.comSigned-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      0534af01
  2. 10 Apr, 2014 19 commits
    • Mark Brown's avatar
      Merge remote-tracking branches 'spi/fix/complete', 'spi/fix/efm32',... · 6eadd846
      Mark Brown authored
      Merge remote-tracking branches 'spi/fix/complete', 'spi/fix/efm32', 'spi/fix/omap2-mcspi' and 'spi/fix/qup' into spi-linus
      6eadd846
    • Mark Brown's avatar
      Merge tag 'spi-v3.15' into spi-linus · 09c0998e
      Mark Brown authored
      spi: Updates for v3.15
      
      A busy release for both cleanups and new drivers this time along with
      further factoring out of replicated code into the core:
      
       - Provide support in the core for DMA mapping transfers - essentially
         all drivers weren't implementing this properly, now there's no
         excuse.
       - Dual and quad mode support for spidev.
       - Fix handling of cs_change in the generic implementation.
       - Remove the S3C_DMA code from the s3c64xx driver now that all the
         platforms using it have been converted to dmaengine.
       - Lots of improvements to the Renesas SPI controllers.
       - Drivers for Allwinner A10 and A31, Qualcomm QUP and Xylinx xtfpga.
       - Removal of the bitrotted ti-ssp driver.
      
      # gpg: Signature made Mon 31 Mar 2014 12:03:09 BST using RSA key ID 7EA229BD
      # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
      # gpg:                 aka "Mark Brown <broonie@debian.org>"
      # gpg:                 aka "Mark Brown <broonie@kernel.org>"
      # gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
      # gpg:                 aka "Mark Brown <broonie@linaro.org>"
      # gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"
      09c0998e
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/fix/bcm590xx', 'regulator/fix/s2m'... · 039df7a7
      Mark Brown authored
      Merge remote-tracking branches 'regulator/fix/bcm590xx', 'regulator/fix/s2m' and 'regulator/fix/s5m8767' into regulator-linus
      039df7a7
    • Mark Brown's avatar
      Merge tag 'regulator-v3.15' into regulator-linus · ed59c8f9
      Mark Brown authored
      regulator: Updates for v3.15
      
      This release has lots and lots of small cleanups and fixes in the
      regulator subsystem, mainly cleaning up some bad patterns that got
      duplicated in DT code, but otherwise very little of note outside
      of the scope of the relevant drivers:
      
       - Support for configuration of the initial state for gpio regulators
         with multi-voltage support.
       - Support for calling regulator_set_voltage() on fixed regulators.
       - New drivers for Broadcom BCM590xx, Freescale pfuze200, Samsung S2MPA01 &
         S2MPS11/4, some PWM controlled regulators found on some ST boards and
         TI TPS65218.
      
      # gpg: Signature made Mon 31 Mar 2014 12:29:14 BST using RSA key ID 7EA229BD
      # gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
      # gpg:                 aka "Mark Brown <broonie@debian.org>"
      # gpg:                 aka "Mark Brown <broonie@kernel.org>"
      # gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
      # gpg:                 aka "Mark Brown <broonie@linaro.org>"
      # gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"
      ed59c8f9
    • Tim Kryger's avatar
      regulator: bcm590xx: Set n_voltages for linear reg · 1e791405
      Tim Kryger authored
      Fix the macro used to define linear range regulators to include the
      number of voltages.
      Signed-off-by: default avatarTim Kryger <tim.kryger@linaro.org>
      Acked-by: default avatarMatt Porter <mporter@linaro.org>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      1e791405
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd · 9e897e13
      Linus Torvalds authored
      Pull exofs updates from Boaz Harrosh:
       "Trivial updates to exofs for 3.15-rc1
      
        Just a few fixes sent by people"
      
      * 'for-linus' of git://git.open-osd.org/linux-open-osd:
        MAINTAINERS: Update email address for bhalevy
        fs: Mark functions as static in exofs/ore_raid.c
        fs: Mark function as static in exofs/super.c
      9e897e13
    • Matt Fleming's avatar
      efi: Pass correct file handle to efi_file_{read,close} · 47514c99
      Matt Fleming authored
      We're currently passing the file handle for the root file system to
      efi_file_read() and efi_file_close(), instead of the file handle for the
      file we wish to read/close.
      
      While this has worked up until now, it seems that it has only been by
      pure luck. Olivier explains,
      
       "The issue is the UEFI Fat driver might return the same function for
        'fh->read()' and 'h->read()'. While in our case it does not work with
        a different implementation of EFI_SIMPLE_FILE_SYSTEM_PROTOCOL. In our
        case, we return a different pointer when reading a directory and
        reading a file."
      
      Fixing this actually clears up the two functions because we can drop one
      of the arguments, and instead only pass a file 'handle' argument.
      Reported-by: default avatarOlivier Martin <olivier.martin@arm.com>
      Reviewed-by: default avatarOlivier Martin <olivier.martin@arm.com>
      Reviewed-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Leif Lindholm <leif.lindholm@linaro.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      47514c99
    • Matt Fleming's avatar
      x86/efi: Correct EFI boot stub use of code32_start · 7e8213c1
      Matt Fleming authored
      code32_start should point at the start of the protected mode code, and
      *not* at the beginning of the bzImage. This is much easier to do in
      assembly so document that callers of make_boot_params() need to fill out
      code32_start.
      
      The fallout from this bug is that we would end up relocating the image
      but copying the image at some offset, resulting in what appeared to be
      memory corruption.
      Reported-by: default avatarThomas Bächler <thomas@archlinux.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      7e8213c1
    • Matt Fleming's avatar
      x86/efi: Fix boot failure with EFI stub · 396f1a08
      Matt Fleming authored
      commit 54b52d87 ("x86/efi: Build our own EFI services pointer
      table") introduced a regression because the 64-bit file_size()
      implementation passed a pointer to a 32-bit data object, instead of a
      pointer to a 64-bit object.
      
      Because the firmware treats the object as 64-bits regardless it was
      reading random values from the stack for the upper 32-bits.
      
      This resulted in people being unable to boot their machines, after
      seeing the following error messages,
      
          Failed to get file info size
          Failed to alloc highmem for files
      Reported-by: default avatarDzmitry Sledneu <dzmitry.sledneu@gmail.com>
      Reported-by: default avatarKoen Kooi <koen@dominion.thruhere.net>
      Tested-by: default avatarKoen Kooi <koen@dominion.thruhere.net>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      396f1a08
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · 4ba85265
      Linus Torvalds authored
      Pull x86 platform driver updates from Matthew Garrett:
       "Support for the new keyboard features on the Thinkpad Carbon, a bunch
        of updates for the Sony and Toshiba drivers, a new driver for upcoming
        Alienware hardware and a few misc fixes.  There's a couple of patches
        that got Acked today but aren't invasive, so I'll send a further PR
        for them next week"
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86: (28 commits)
        alienware-wmi: cover some scenarios where memory allocations would fail
        Add WMI driver for controlling AlienFX features on some Alienware products
        fujitsu-tablet: add support for Lifebook T901 and T902
        x86, platform: Make HP_WIRELESS option text more descriptive
        x86, acpi: LLVMLinux: Remove nested functions from Thinkpad ACPI
        save and restore adaptive keyboard mode for suspend and,resume
        support Thinkpad X1 Carbon 2nd generation's adaptive keyboard
        toshiba_acpi: Fix whitespace
        toshiba_acpi: Update version and copyright info
        toshiba_acpi: Add accelerometer support
        toshiba_acpi: Add ECO mode led support
        toshiba_acpi: Add touchpad enable/disable support-
        toshiba_acpi: Add keyboard backlight support
        toshiba_acpi: Adapt Illumination code to use SCI
        toshiba_acpi: Add System Configuration Interface
        thinkpad_acpi: Fix inconsistent mute LED after resume
        sonypi: Simplify dependencies
        Revert "X86 platform: New BayTrail IOSF-SB MBI driver"
        sony-laptop: remove useless sony-laptop versioning
        sony-laptop: add smart connect control function
        ...
      4ba85265
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · dd76a786
      Linus Torvalds authored
      Pull block layer fixes from Jens Axboe:
       "A small collection of fixes that should go in before -rc1.  The pull
        request contains:
      
         - A two patch fix for a regression with block enabled tagging caused
           by a commit in the initial pull request.  One patch is from Martin
           and ensures that SCSI doesn't truncate 64-bit block flags, the
           other one is from me and prevents us from double using struct
           request queuelist for both completion and busy tags.  This caused
           anything from a boot crash for some, to crashes under load.
      
         - A blk-mq fix for a potential soft stall when hot unplugging CPUs
           with busy IO.
      
         - percpu_counter fix is listed in here, that caused a suspend issue
           with virtio-blk due to percpu counters having an inconsistent state
           during CPU removal.  Andrew sent this in separately a few days ago,
           but it's here.  JFYI.
      
         - A few fixes for block integrity from Martin.
      
         - A ratelimit fix for loop from Mike Galbraith, to avoid spewing too
           much in error cases"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: fix regression with block enabled tagging
        scsi: Make sure cmd_flags are 64-bit
        block: Ensure we only enable integrity metadata for reads and writes
        block: Fix integrity verification
        block: Fix for_each_bvec()
        drivers/block/loop.c: ratelimit error messages
        blk-mq: fix potential stall during CPU unplug with IO pending
        percpu_counter: fix bad counter state during suspend
      dd76a786
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · e7990d45
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here is a bunch of small fixes that have been collected since the
        previous pull request.  In addition to various misc fixes, the
        following are included:
      
         - HD-audio quirks for Dell, HP, Chromebook, and ALC28x codecs
         - HD-audio AMD HDMI regression fix
         - Continued PM support/fixes for ice1712 driver
         - Multiplatform fixes for ASoC samsung drivers
         - Addition of device id tables to a few ASoC drivers
         - Bit clock polarity config and error flag fixes in ASoC fsl_sai"
      
      * tag 'sound-fix-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (32 commits)
        ALSA: usb-audio: Suppress repetitive debug messages from retire_playback_urb()
        ALSA: hda - Make full_reset boolean
        ALSA: hda - add headset mic detect quirk for a Dell laptop
        sound: dmasound: use module_platform_driver_probe()
        ALSA: au1x00: use module_platform_driver()
        ALSA: hda - Use runtime helper to check active state.
        ALSA: ice1712: Fix boundary checks in PCM pointer ops
        ASoC: davinci-mcasp: Fix bit clock polarity settings
        ASoC: samsung: Fix build on multiplatform
        ASoC: fsl_sai: Fix Bit Clock Polarity configurations
        ALSA: hda - Do not assign streams in reverse order
        ALSA: hda/realtek - Add eapd shutup to ALC283
        ALSA: hda/realtek - Change model name alias for ChromeOS
        ASoC: da732x: Print correct major id
        ALSA: hda/realtek - Improve HP depop when system change power state on Chromebook
        ASoC: cs42l52: Fix mask for REVID
        sound/oss: Remove uncompilable DBG macro use
        ALSA: ice1712: Save/restore routing and rate registers
        ALSA: ice1712: restore AK4xxx volumes on resume
        ASoC: alc56(23|32): fix undefined return value of probing code
        ...
      e7990d45
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 190a3998
      Linus Torvalds authored
      Pull thermal management updates from Zhang Rui:
       "We only have a couple of fixes/cleanups for platform thermal drivers
        this time.
      
        Specifics:
      
         - rcar thermal driver: avoid updating the thermal zone in case an IRQ
           was triggered but the temperature didn't effectively change.  From
           Patrick Titiano.
      
         - update the imx thermal driver' formula of converting thermal
           sensor' raw date to real temperature in degree C.  From Anson
           Huang.
      
         - trivial code cleanups of ti soc thermal and rcar thermal driver
           from Jingoo Han and Patrick Titiano"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: rcar-thermal: update thermal zone only when temperature changes
        thermal: rcar-thermal: fix same mask applied twice
        thermal: ti-soc-thermal: Use SIMPLE_DEV_PM_OPS macro
        thermal: imx: update formula for thermal sensor
      190a3998
    • Mario Limonciello's avatar
      alienware-wmi: cover some scenarios where memory allocations would fail · 562c7cec
      Mario Limonciello authored
      Intel test builder caught a few instances that should test if kzalloc failed to
      allocate memory as well as a scenario that platform_driver wasn't properly
      initialized.
      Signed-off-by: default avatarMario Limonciello <mario_limonciello@dell.com>
      Signed-off-by: default avatarMatthew Garrett <matthew.garrett@nebula.com>
      562c7cec
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 4162877d
      Linus Torvalds authored
      Pull LED updates from Bryan Wu:
       "This cycle we got:
         - new driver for leds-mc13783
         - bug fixes
         - code cleanup"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: make sure we unregister a trigger only once
        leds: leds-pwm: properly clean up after probe failure
        leds: clevo-mail: Make probe function __init
        leds-ot200: Fix dependencies
        leds-gpio: of: introduce MODULE_DEVICE_TABLE for module autoloading
        leds: clevo-mail: remove __initdata marker
        leds: leds-ss4200: remove __initdata marker
        leds: blinkm: remove unnecessary spaces
        leds: lp5562: remove unnecessary parentheses
        leds: leds-ss4200: remove DEFINE_PCI_DEVICE_TABLE macro
        leds: leds-s3c24xx: Trivial cleanup in header file
        drivers/leds: delete non-required instances of include <linux/init.h>
        leds: leds-gpio: add retain-state-suspended property
        leds: leds-mc13783: Add devicetree support
        leds: leds-mc13783: Remove unnecessary cleaning of registers on exit
        leds: leds-mc13783: Use proper "max_brightness" value fo LEDs
        leds: leds-mc13783: Use LED core PM functions
        leds: leds-mc13783: Add MC34708 LED support
        leds: Turn off led if blinking is disabled
        ledtrig-cpu: Handle CPU hot(un)plugging
      4162877d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma · 6c61403a
      Linus Torvalds authored
      Pull slave-dmaengine updates from Vinod Koul:
       - New driver for Qcom bam dma
       - New driver for RCAR peri-peri
       - New driver for FSL eDMA
       - Various odd fixes and updates thru the subsystem
      
      * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (29 commits)
        dmaengine: add Qualcomm BAM dma driver
        shdma: add R-Car Audio DMAC peri peri driver
        dmaengine: sirf: enable generic dt binding for dma channels
        dma: omap-dma: Implement device_slave_caps callback
        dmaengine: qcom_bam_dma: Add device tree binding
        dma: dw: Add suspend and resume handling for PCI mode DW_DMAC.
        dma: dw: allocate memory in two stages in probe
        Add new line to test result strings produced in verbose mode
        dmaengine: pch_dma: use tasklet_kill in teardown
        dmaengine: at_hdmac: use tasklet_kill in teardown
        dma: cppi41: start tear down only if channel is busy
        usb: musb: musb_cppi41: Dont reprogram DMA if tear down is initiated
        dmaengine: s3c24xx-dma: make phy->irq signed for error handling
        dma: imx-dma: Add missing module owner field
        dma: imx-dma: Replace printk with dev_*
        dma: fsl-edma: fix static checker warning of NULL dereference
        dma: Remove comment about embedding dma_slave_config into custom structs
        dma: mmp_tdma: move to generic device tree binding
        dma: mmp_pdma: add IRQF_SHARED when request irq
        dma: edma: Fix memory leak in edma_prep_dma_cyclic()
        ...
      6c61403a
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · edf2377c
      Linus Torvalds authored
      Pull backlight changes from Lee Jones:
       - core: call put_device() instead of kfree()
       - gpio-backlight: add DT support
       - lm3639_bl driver: use managed resources
      
      * tag 'backlight-for-linus-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: lm3639: Use devm_backlight_device_register()
        backlight: gpio-backlight: Add DT support
        backlight: core: Replace kfree with put_device
      edf2377c
    • Jens Axboe's avatar
      block: fix regression with block enabled tagging · 360f92c2
      Jens Axboe authored
      Martin reported that his test system would not boot with
      current git, it oopsed with this:
      
      BUG: unable to handle kernel paging request at ffff88046c6c9e80
      IP: [<ffffffff812971e0>] blk_queue_start_tag+0x90/0x150
      PGD 1ddf067 PUD 1de2067 PMD 47fc7d067 PTE 800000046c6c9060
      Oops: 0002 [#1] SMP DEBUG_PAGEALLOC
      Modules linked in: sd_mod lpfc(+) scsi_transport_fc scsi_tgt oracleasm
      rpcsec_gss_krb5 ipv6 igb dca i2c_algo_bit i2c_core hwmon
      CPU: 3 PID: 87 Comm: kworker/u17:1 Not tainted 3.14.0+ #246
      Hardware name: Supermicro X9DRX+-F/X9DRX+-F, BIOS 3.00 07/09/2013
      Workqueue: events_unbound async_run_entry_fn
      task: ffff8802743c2150 ti: ffff880273d02000 task.ti: ffff880273d02000
      RIP: 0010:[<ffffffff812971e0>]  [<ffffffff812971e0>]
      blk_queue_start_tag+0x90/0x150
      RSP: 0018:ffff880273d03a58  EFLAGS: 00010092
      RAX: ffff88046c6c9e78 RBX: ffff880077208e78 RCX: 00000000fffc8da6
      RDX: 00000000fffc186d RSI: 0000000000000009 RDI: 00000000fffc8d9d
      RBP: ffff880273d03a88 R08: 0000000000000001 R09: ffff8800021c2410
      R10: 0000000000000005 R11: 0000000000015b30 R12: ffff88046c5bb8a0
      R13: ffff88046c5c0890 R14: 000000000000001e R15: 000000000000001e
      FS:  0000000000000000(0000) GS:ffff880277b00000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff88046c6c9e80 CR3: 00000000018f6000 CR4: 00000000000407e0
      Stack:
       ffff880273d03a98 ffff880474b18800 0000000000000000 ffff880474157000
       ffff88046c5c0890 ffff880077208e78 ffff880273d03ae8 ffffffff813b9e62
       ffff880200000010 ffff880474b18968 ffff880474b18848 ffff88046c5c0cd8
      Call Trace:
       [<ffffffff813b9e62>] scsi_request_fn+0xf2/0x510
       [<ffffffff81293167>] __blk_run_queue+0x37/0x50
       [<ffffffff8129ac43>] blk_execute_rq_nowait+0xb3/0x130
       [<ffffffff8129ad24>] blk_execute_rq+0x64/0xf0
       [<ffffffff8108d2b0>] ? bit_waitqueue+0xd0/0xd0
       [<ffffffff813bba35>] scsi_execute+0xe5/0x180
       [<ffffffff813bbe4a>] scsi_execute_req_flags+0x9a/0x110
       [<ffffffffa01b1304>] sd_spinup_disk+0x94/0x460 [sd_mod]
       [<ffffffff81160000>] ? __unmap_hugepage_range+0x200/0x2f0
       [<ffffffffa01b2b9a>] sd_revalidate_disk+0xaa/0x3f0 [sd_mod]
       [<ffffffffa01b2fb8>] sd_probe_async+0xd8/0x200 [sd_mod]
       [<ffffffff8107703f>] async_run_entry_fn+0x3f/0x140
       [<ffffffff8106a1c5>] process_one_work+0x175/0x410
       [<ffffffff8106b373>] worker_thread+0x123/0x400
       [<ffffffff8106b250>] ? manage_workers+0x160/0x160
       [<ffffffff8107104e>] kthread+0xce/0xf0
       [<ffffffff81070f80>] ? kthread_freezable_should_stop+0x70/0x70
       [<ffffffff815f0bac>] ret_from_fork+0x7c/0xb0
       [<ffffffff81070f80>] ? kthread_freezable_should_stop+0x70/0x70
      Code: 48 0f ab 11 72 db 48 81 4b 40 00 00 10 00 89 83 08 01 00 00 48 89
      df 49 8b 04 24 48 89 1c d0 e8 f7 a8 ff ff 49 8b 85 28 05 00 00 <48> 89
      58 08 48 89 03 49 8d 85 28 05 00 00 48 89 43 08 49 89 9d
      RIP  [<ffffffff812971e0>] blk_queue_start_tag+0x90/0x150
       RSP <ffff880273d03a58>
      CR2: ffff88046c6c9e80
      
      Martin bisected and found this to be the problem patch;
      
      	commit 6d113398
      	Author: Jan Kara <jack@suse.cz>
      	Date:   Mon Feb 24 16:39:54 2014 +0100
      
      	    block: Stop abusing rq->csd.list in blk-softirq
      
      and the problem was immediately apparent. The patch states that
      it is safe to reuse queuelist at completion time, since it is
      no longer used. However, that is not true if a device is using
      block enabled tagging. If that is the case, then the queuelist
      is reused to keep track of busy tags. If a device also ended
      up using softirq completions, we'd reuse ->queuelist for the
      IPI handling while block tagging was still using it. Boom.
      
      Fix this by adding a new ipi_list list head, and share the
      memory used with the request hash table. The hash table is
      never used after the request is moved to the dispatch list,
      which happens long before any potential completion of the
      request. Add a new request bit for this, so we don't have
      cases that check rq->hash while it could potentially have
      been reused for the IPI completion.
      Reported-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Tested-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      360f92c2
    • Martin K. Petersen's avatar
      scsi: Make sure cmd_flags are 64-bit · 2bfad21e
      Martin K. Petersen authored
      cmd_flags in struct request is now 64 bits wide but the scsi_execute
      functions truncated arguments passed to int leading to errors. Make sure
      the flags parameters are u64.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Cc: Jens Axboe <axboe@fb.com>
      CC: Jan Kara <jack@suse.cz>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      2bfad21e
  3. 09 Apr, 2014 6 commits
    • Tim Gardner's avatar
      ALSA: usb-audio: Suppress repetitive debug messages from retire_playback_urb() · a5065eb6
      Tim Gardner authored
      BugLink: http://bugs.launchpad.net/bugs/1305133
      
      Malfunctioning or slow devices can cause a flood of dmesg SPAM.
      
      I've ignored checkpatch.pl complaints about the use of printk_ratelimit() in favour
      of prior art in sound/usb/pcm.c.
      
      WARNING: Prefer printk_ratelimited or pr_<level>_ratelimited to printk_ratelimit
      +	if (printk_ratelimit() &&
      
      Cc: Jaroslav Kysela <perex@perex.cz>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Eldad Zack <eldad@fogrefinery.com>
      Cc: Daniel Mack <zonque@gmail.com>
      Cc: Clemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a5065eb6
    • Takashi Iwai's avatar
      Merge tag 'asoc-v3.15-5' of... · 50487c3a
      Takashi Iwai authored
      Merge tag 'asoc-v3.15-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v3.15
      
      A smattering of device specific fixes, nothing stands out here except
      for the multiplatform fixes for Samsung and the device IDs being added
      by Stephen Warren - there's no real code changes from those and they
      give better robustness to the enumeration with DT.
      50487c3a
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 39de65aa
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Here is the pull request from the i2c subsystem.  It got a little
        delayed because I needed to wait for a dependency to be included
        (commit b424080a: "reset: Add optional resets and stubs").  Plus,
        I had some email problems.  All done now, the highlights are:
      
         - drivers can now deprecate their use of i2c classes.  That shouldn't
           be used on embedded platforms anyhow and was often blindly
           copy&pasted.  This mechanism gives users time to switch away and
           ultimately boot faster once the use of classes for those drivers is
           gone for good.
      
         - new drivers for QUP, Cadence, efm32
      
         - tracepoint support for I2C and SMBus
      
         - bigger cleanups for the mv64xxx, nomadik, and designware drivers
      
        And the usual bugfixes, cleanups, feature additions.  Most stuff has
        been in linux-next for a while.  Just some hot fixes and new drivers
        were added a bit more recently."
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (63 commits)
        i2c: cadence: fix Kconfig dependency
        i2c: Add driver for Cadence I2C controller
        i2c: cadence: Document device tree bindings
        Documentation: i2c: improve section about flags mangling the protocol
        i2c: qup: use proper type fro clk_freq
        i2c: qup: off by ones in qup_i2c_probe()
        i2c: efm32: fix binding doc
        MAINTAINERS: update I2C web resources
        i2c: qup: New bus driver for the Qualcomm QUP I2C controller
        i2c: qup: Add device tree bindings information
        i2c: i2c-xiic: deprecate class based instantiation
        i2c: i2c-sirf: deprecate class based instantiation
        i2c: i2c-mv64xxx: deprecate class based instantiation
        i2c: i2c-designware-platdrv: deprecate class based instantiation
        i2c: i2c-davinci: deprecate class based instantiation
        i2c: i2c-bcm2835: deprecate class based instantiation
        i2c: mv64xxx: Fix reset controller handling
        i2c: omap: fix usage of IS_ERR_VALUE with pm_runtime_get_sync
        i2c: efm32: new bus driver
        i2c: exynos5: remove unnecessary cast of void pointer
        ...
      39de65aa
    • Linus Torvalds's avatar
      Merge tag 'mmc-updates-for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 97e18dc0
      Linus Torvalds authored
      Pull MMC updates from Chris Ball:
       "MMC highlights for 3.15:
      
        Core:
         - CONFIG_MMC_UNSAFE_RESUME=y is now default behavior
         - DT bindings for SDHCI UHS, eMMC HS200, high-speed DDR, at 1.8/1.2V
         - Add GPIO descriptor based slot-gpio card detect API
      
        Drivers:
         - dw_mmc: Refactor SOCFPGA support as a variant inside dw_mmc-pltfm.c
         - mmci: Support HW busy detection on ux500
         - omap: Support MMC_ERASE
         - omap_hsmmc: Support MMC_PM_KEEP_POWER, MMC_PM_WAKE_SDIO_IRQ, (a)cmd23
         - rtsx: Support pre-req/post-req async
         - sdhci: Add support for Realtek RTS5250 controllers
         - sdhci-acpi: Add support for 80860F16, fix 80860F14/SDIO card detect
         - sdhci-msm: Add new driver for Qualcomm SDHCI chipset support
         - sdhci-pxav3: Add support for Marvell Armada 380 and 385 SoCs"
      
      * tag 'mmc-updates-for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (102 commits)
        mmc: sdhci-acpi: Intel SDIO has broken card detect
        mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller
        mmc: sdhci-msm: Add platform_execute_tuning implementation
        mmc: sdhci-msm: Initial support for Qualcomm chipsets
        mmc: sdhci-msm: Qualcomm SDHCI binding documentation
        sdhci: only reprogram retuning timer when flag is set
        mmc: rename ARCH_BCM to ARCH_BCM_MOBILE
        mmc: sdhci: Allow for irq being shared
        mmc: sdhci-acpi: Add device id 80860F16
        mmc: sdhci-acpi: Fix broken card detect for ACPI HID 80860F14
        mmc: slot-gpio: Add GPIO descriptor based CD GPIO API
        mmc: slot-gpio: Split out CD IRQ request into a separate function
        mmc: slot-gpio: Record GPIO descriptors instead of GPIO numbers
        Revert "dts: socfpga: Add support for SD/MMC on the SOCFPGA platform"
        mmc: sdhci-spear: use generic card detection gpio support
        mmc: sdhci-spear: remove support for power gpio
        mmc: sdhci-spear: simplify resource handling
        mmc: sdhci-spear: fix platform_data usage
        mmc: sdhci-spear: fix error handling paths for DT
        mmc: sdhci-bcm-kona: fix build errors when built-in
        ...
      97e18dc0
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 042f7b7c
      Linus Torvalds authored
      Pull more powerpc updates from Ben Herrenschmidt:
       "Here are a few more powerpc things for you.
      
        So you'll find here the conversion of the two new firmware sysfs
        interfaces to the new API for self-removing files that Greg and Tejun
        introduced, so they can finally remove the old one.
      
        I'm also reverting the hwmon driver for powernv.  I shouldn't have
        merged it, I got a bit carried away here.  I hadn't realized it was
        never CCed to the relevant maintainer(s) and list(s), and happens to
        have some issues so I'm taking it out and it will come back via the
        proper channels.
      
        The rest is a bunch of LE fixes (argh, some of the new stuff was
        broken on LE, I really need to start testing LE myself !) and various
        random fixes here and there.
      
        Finally one bit that's not strictly a fix, which is the HVC OPAL
        change to "kick" the HVC thread when the firmware tells us there is
        new incoming data.  I don't feel like waiting for this one, it's
        simple enough, and it makes a big difference in console responsiveness
        which is good for my nerves"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (26 commits)
        powerpc/powernv Adapt opal-elog and opal-dump to new sysfs_remove_file_self
        Revert "powerpc/powernv: hwmon driver for power values, fan rpm and temperature"
        power, sched: stop updating inside arch_update_cpu_topology() when nothing to be update
        powerpc/le: Avoid creatng R_PPC64_TOCSAVE relocations for modules.
        arch/powerpc: Use RCU_INIT_POINTER(x, NULL) in platforms/cell/spu_syscalls.c
        powerpc/opal: Add missing include
        powerpc: Convert last uses of __FUNCTION__ to __func__
        powerpc: Add lq/stq emulation
        powerpc/powernv: Add invalid OPAL call
        powerpc/powernv: Add OPAL message log interface
        powerpc/book3s: Fix mc_recoverable_range buffer overrun issue.
        powerpc: Remove dead code in sycall entry
        powerpc: Use of_node_init() for the fakenode in msi_bitmap.c
        powerpc/mm: NUMA pte should be handled via slow path in get_user_pages_fast()
        powerpc/powernv: Fix endian issues with sensor code
        powerpc/powernv: Fix endian issues with OPAL async code
        tty/hvc_opal: Kick the HVC thread on OPAL console events
        powerpc/powernv: Add opal_notifier_unregister() and export to modules
        powerpc/ppc64: Do not turn AIL (reloc-on interrupts) too early
        powerpc/ppc64: Gracefully handle early interrupts
        ...
      042f7b7c
    • Linus Torvalds's avatar
      futex: avoid race between requeue and wake · 69cd9eba
      Linus Torvalds authored
      Jan Stancek reported:
       "pthread_cond_broadcast/4-1.c testcase from openposix testsuite (LTP)
        occasionally fails, because some threads fail to wake up.
      
        Testcase creates 5 threads, which are all waiting on same condition.
        Main thread then calls pthread_cond_broadcast() without holding mutex,
        which calls:
      
            futex(uaddr1, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, uaddr2, ..)
      
        This immediately wakes up single thread A, which unlocks mutex and
        tries to wake up another thread:
      
            futex(uaddr2, FUTEX_WAKE_PRIVATE, 1)
      
        If thread A manages to call futex_wake() before any waiters are
        requeued for uaddr2, no other thread is woken up"
      
      The ordering constraints for the hash bucket waiter counting are that
      the waiter counts have to be incremented _before_ getting the spinlock
      (because the spinlock acts as part of the memory barrier), but the
      "requeue" operation didn't honor those rules, and nobody had even
      thought about that case.
      
      This fairly simple patch just increments the waiter count for the target
      hash bucket (hb2) when requeing a futex before taking the locks.  It
      then decrements them again after releasing the lock - the code that
      actually moves the futex(es) between hash buckets will do the additional
      required waiter count housekeeping.
      Reported-and-tested-by: default avatarJan Stancek <jstancek@redhat.com>
      Acked-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org # 3.14
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      69cd9eba