1. 22 6月, 2014 3 次提交
    • L
      Merge tag 'staging-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · e6934ab4
      Linus Torvalds 提交于
      Pull staging driver fixes from Greg KH:
       "Here are a few fixes for staging and iio drivers that resolve issues
        reported in 3.16-rc1.
      
        All have been in linux-next just fine"
      
      * tag 'staging-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        imx-drm: parallel-display: Fix DPMS default state.
        staging: android: timed_output: fix use after free of dev
        staging: comedi: addi_apci_1564: add addi_watchdog dependency
        staging: rtl8723au: Reference correct firmwarefiles with MODULE_FIRMWARE()
        staging: rtl8723au: Request correct firmware file for A-cut parts
        iio: adc: checking for NULL instead of IS_ERR() in probe
        iio: adc: at91: signedness bug in at91_adc_get_trigger_value_by_name()
        iio: mxs-lradc: fix divider
        iio: Fix endianness issue in ak8975_read_axis()
        staging/iio: IIO_SIMPLE_DUMMY_BUFFER neds IIO_BUFFER
        twl4030-madc: Request processed values in twl4030_get_madc_conversion
        staging: iio: tsl2x7x_core: fix proximity treshold
        iio: Fix two mpl3115 issues in measurement conversion
        iio: hid-sensors: Get feature report from sensor hub after changing power state
      e6934ab4
    • L
      Merge tag 'tty-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c3cb500e
      Linus Torvalds 提交于
      Pull tty/serial bugfixes from Greg KH:
       "Here are some tty / serial driver bugfixes for 3.16-rc2 that resolve
        some reported issues.  The samsung driver build error itself has been
        reported by a bunch of people, sorry about that one.  The others are
        all tiny and everyone seems to like them in linux-next so far"
      
      * tag 'tty-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty/serial: fix 8250 early console option passing to regular console
        tty: Correct INPCK handling
        serial: Fix IGNBRK handling
        serial: samsung: Fix build error
      c3cb500e
    • L
      Merge tag 'usb-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 564fbee9
      Linus Torvalds 提交于
      Pull USB fixes from Greg KH:
       "Here are some USB fixes for 3.16-rc2 that resolve some reported
        issues.  All of these have been in linux-next for a while with no
        problems"
      
      * tag 'usb-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: usbtest: add a timeout for scatter-gather tests
        USB: EHCI: avoid BIOS handover on the HASEE E200
        usb: fix hub-port pm_runtime_enable() vs runtime pm transitions
        usb: quiet peer failure warning, disable poweroff
        usb: improve "not suspended yet" message in hub_suspend()
        xhci: Fix sleeping with IRQs disabled in xhci_stop_device()
        usb: fix ->update_hub_device() vs hdev->maxchild
      564fbee9
  2. 20 6月, 2014 14 次提交
    • L
      Merge tag 'pm+acpi-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3c8fb504
      Linus Torvalds 提交于
      Pull ACPI and power management fixes from Rafael Wysocki:
       "These are fixes mostly (ia64 regression related to the ACPI
        enumeration of devices, cpufreq regressions, fix for I2C controllers
        included in Intel SoCs, mvebu cpuidle driver fix related to sysfs)
        plus additional kernel command line arguments from Kees to make it
        possible to build kernel images with hibernation and the kernel
        address space randomization included simultaneously, a new ACPI
        battery driver quirk for a system with a broken BIOS and a couple of
        ACPI core cleanups.
      
        Specifics:
      
         - Fix for an ia64 regression introduced during the 3.11 cycle by a
           commit that modified the hardware initialization ordering and made
           device discovery fail on some systems.
      
         - Fix for a build problem on systems where the cpufreq-cpu0 driver is
           built-in and the cpu-thermal driver is modular from Arnd Bergmann.
      
         - Fix for a recently introduced computational mistake in the
           intel_pstate driver that leads to excessive rounding errors from
           Doug Smythies.
      
         - Fix for a failure code path in cpufreq_update_policy() that fails
           to unlock the locks acquired previously from Aaron Plattner.
      
         - Fix for the cpuidle mvebu driver to use shorter state names which
           will prevent the sysfs interface from returning mangled strings.
           From Gregory Clement.
      
         - ACPI LPSS driver fix to make sure that the I2C controllers included
           in BayTrail SoCs are not held in the reset state while they are
           being probed from Mika Westerberg.
      
         - New kernel command line arguments making it possible to build
           kernel images with hibernation and kASLR included at the same time
           and to select which of them will be used via the command line (they
           are still functionally mutually exclusive, though).  From Kees
           Cook.
      
         - ACPI battery driver quirk for Acer Aspire V5-573G that fails to
           send battery status change notifications timely from Alexander
           Mezin.
      
         - Two ACPI core cleanups from Christoph Jaeger and Fabian Frederick"
      
      * tag 'pm+acpi-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle: mvebu: Fix the name of the states
        cpufreq: unlock when failing cpufreq_update_policy()
        intel_pstate: Correct rounding in busy calculation
        ACPI: use kstrto*() instead of simple_strto*()
        ACPI / processor replace __attribute__((packed)) by __packed
        ACPI / battery: add quirk for Acer Aspire V5-573G
        ACPI / battery: use callback for setting up quirks
        ACPI / LPSS: Take I2C host controllers out of reset
        x86, kaslr: boot-time selectable with hibernation
        PM / hibernate: introduce "nohibernate" boot parameter
        cpufreq: cpufreq-cpu0: fix CPU_THERMAL dependency
        ACPI / ia64 / sba_iommu: Restore the working initialization ordering
      3c8fb504
    • L
      Merge tag 'sound-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 4ef61076
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "The significant part here is a few security fixes for ALSA core
        control API by Lars.  Besides that, there are a few fixes for ASoC
        sigmadsp (again by Lars) for building properly, and small fixes for
        ASoC rsnd, MMP, PXA and FSL, in addition to a fix for bogus WARNING in
        i915/HD-audio binding"
      
      * tag 'sound-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: control: Make sure that id->index does not overflow
        ALSA: control: Handle numid overflow
        ALSA: control: Don't access controls outside of protected regions
        ALSA: control: Fix replacing user controls
        ALSA: control: Protect user controls against concurrent access
        drm/i915, HD-audio: Don't continue probing when nomodeset is given
        ASoC: fsl: Fix build problem
        ASoC: rsnd: fixup index of src/dst mod when capture
        ASoC: fsl_spdif: Fix integer overflow when calculating divisors
        ASoC: fsl_spdif: Fix incorrect usage of regmap_read()
        ASoC: dapm: Make sure register value is in sync with DAPM kcontrol state
        ASoC: sigmadsp: Split regmap and I2C support into separate modules
        ASoC: MMP audio needs sram support
        ASoC: pxa: add I2C dependencies as needed
      4ef61076
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 0c9bc275
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "This looks bigger than it is, as one of the nouveau firmware fixes
        ("drm/gf100-/gr: report class data to host on fwmthd failure")
        regenerates a bunch of the firmware files after changing the assembly
        by a few lines, without that, its more of a
      
          36 files changed, 370 insertions(+), 129 deletions(-)
      
        It contains some vt.c fixes acked by Greg, for rare hard hangs on i915
        loading, that also fixes hangs on reload and spurious register write
        errors.
      
        drm core: one fix for uninit memory
      
        nouveau: displayport rework caused a few regressions, Ben has been
           fixing them as the appear, along with some other fixes
      
        radeon: pageflipping regression fix, deep color fix, mode validation
           fixes
      
        i915: fbc disable, vga console kick off, backlight fix, divide-by-zero
           fix"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (33 commits)
        drm: fix uninitialized acquire_ctx fields (v2)
        drm/radeon: Fix radeon_irq_kms_pflip_irq_get/put() imbalance
        Revert "drm/radeon: remove drm_vblank_get|put from pflip handling"
        drm/radeon: improve dvi_mode_valid
        drm/radeon: update mode_valid testing for DP
        drm/radeon: Use dce5/6 hdmi deep color clock setup also on dce8+
        drm/nouveau/disp: fix oops in destructor with headless cards
        drm/gf117/i2c: no aux channels on this chipset
        drm/nouveau/doc: update the thermal documentation
        drm/nouveau/pwr: fix typo in fifo wrap handling
        drm/nv50/disp: fix a potential oops in supervisor handling
        drm/nouveau/disp/dp: don't touch link config after success
        drm/nouveau/kms: reference vblank for crtc during pageflip.
        drm/gk104/fb/ram: fixups from an earlier search+replace
        drm/nv50/gr: remove an unneeded write while initialising PGRAPH
        drm/nv50/gr: fix overlap while zeroing zcull regions
        drm/gf100-/gr: report class data to host on fwmthd failure
        drm/gk104/ibus: increase various random timeouts
        drm/gk104/clk: only touch divider for mode we'll be using
        drm/radeon: Bypass hw lut's for > 8 bpc framebuffer scanout.
        ...
      0c9bc275
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · f1d70248
      Linus Torvalds 提交于
      Pull block fixes from Jens Axboe:
       "A smaller collection of fixes for the block core that would be nice to
        have in -rc2.  This pull request contains:
      
         - Fixes for races in the wait/wakeup logic used in blk-mq from
           Alexander.  No issues have been observed, but it is definitely a
           bit flakey currently.  Alternatively, we may drop the cyclic
           wakeups going forward, but that needs more testing.
      
         - Some cleanups from Christoph.
      
         - Fix for an oops in null_blk if queue_mode=1 and softirq completions
           are used.  From me.
      
         - A fix for a regression caused by the chunk size setting.  It
           inadvertently used max_hw_sectors instead of max_sectors, which is
           incorrect, and causes hangs on btrfs multi-disk setups (where hw
           sectors apparently isn't set).  From me.
      
         - Removal of WQ_POWER_EFFICIENT in the kblockd creation.  This was a
           recent addition as well, but it actually breaks blk-mq which relies
           on strict scheduling.  If the workqueue power_efficient mode is
           turned on, this breaks blk-mq.  From Matias.
      
         - null_blk module parameter description fix from Mike"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq: bitmap tag: fix races in bt_get() function
        blk-mq: bitmap tag: fix race on blk_mq_bitmap_tags::wake_cnt
        blk-mq: bitmap tag: fix races on shared ::wake_index fields
        block: blk_max_size_offset() should check ->max_sectors
        null_blk: fix softirq completions for queue_mode == 1
        blk-mq: merge blk_mq_drain_queue and __blk_mq_drain_queue
        blk-mq: properly drain stopped queues
        block: remove WQ_POWER_EFFICIENT from kblockd
        null_blk: fix name and description of 'queue_mode' module parameter
        block: remove elv_abort_queue and blk_abort_flushes
      f1d70248
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 58c72f94
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Arnd Bergmann:
       "A first set of bug fixes that didn't make it for the merge window, and
        two Kconfig cleanups that still make sense at this point.
      
        Unfortunately, one of the two cleanups caused an unintended change in
        the original version, so we had to revert one part of it and do some
        more testing to ensure the rest is really fine.  There was also a
        last-minute rebase of the patches to remove another bad commit"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: use menuconfig for sub-arch menus
        ARM: multi_v7_defconfig: re-enable SDHCI drivers
        ARM: EXYNOS: Fix compilation warning
        ARM: exynos: move sysram info to exynos.c
        ARM: dts: Specify the NAND ECC scheme explicitly on Armada 385 DB board
        ARM: dts: Specify the NAND ECC scheme explicitly on Armada 375 DB board
        ARM: exynos: cleanup kconfig option display
        misc: vexpress: fix error handling vexpress_syscfg_regmap_init()
        ARM: Remove ARCH_HAS_CPUFREQ config option
        ARM: integrator: fix section mismatch problem
        ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size
        ARM: samsung: make SAMSUNG_DMADEV optional
        remoteproc: da8xx: don't select CMA on no-MMU
        bus/arm-cci: add dependency on OF && CPU_V7
        ARM: keystone requires ARM_PATCH_PHYS_VIRT
        ARM: omap2: fix am43xx dependency on l2x0 cache
      58c72f94
    • D
      imx-drm: parallel-display: Fix DPMS default state. · c026a3f3
      Denis Carikli 提交于
      If connector->dpms is left untouched, it defaults
      to DRM_MODE_DPMS_ON (0).
      
      As a result, drm_helper_connector_dpms will exit when
      it will be asked to set the state to DRM_MODE_DPMS_ON,
      because it is already set.
      
      That issue prevented displays from turning on at boot.
      Signed-off-by: NDenis Carikli <denis@eukrea.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c026a3f3
    • Y
      staging: android: timed_output: fix use after free of dev · b28e7d58
      Yi Zhang 提交于
      tdev->dev has been freed in device_destroy(), it's not right to
      use dev_set_drvdata() after that;
      Signed-off-by: NYi Zhang <yizhang@marvell.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b28e7d58
    • R
      tty/serial: fix 8250 early console option passing to regular console · 60efcf04
      Rob Herring 提交于
      In the conversion to generic early console, the passing of options from
      the early 8250 console to the regular ttyS console was broken. This
      resulted in the baud rate changing when switching consoles during boot.
      
      This feature allows specifying a single console option on the kernel
      command line rather than both an early console and regular serial tty
      console. It would be nice to generalize this feature. However, it only
      works if the correct baud rate can be probed early which is not the
      case on many platforms which have non-standard UART clock rates. So for
      now, this is left as an 8250 specific feature.
      Reported-and-tested-by: NTony Luck <tony.luck@intel.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      60efcf04
    • P
      tty: Correct INPCK handling · 66528f90
      Peter Hurley 提交于
      If INPCK is not set, input parity detection should be disabled. This means
      parity errors should not be received from the tty driver, and the data
      received should be treated normally.
      
      SUS v3, 11.2.2, General Terminal Interface - Input Modes, states:
        "If INPCK is set, input parity checking shall be enabled. If INPCK is
         not set, input parity checking shall be disabled, allowing output parity
         generation without input parity errors. Note that whether input parity
         checking is enabled or disabled is independent of whether parity detection
         is enabled or disabled (see Control Modes). If parity detection is enabled
         but input parity checking is disabled, the hardware to which the terminal
         is connected shall recognize the parity bit, but the terminal special file
         shall not check whether or not this bit is correctly set."
      
      Ignore parity errors reported by the tty driver when INPCK is not set, and
      handle the received data normally.
      
      Fixes: Bugzilla #71681, 'Improvement of n_tty_receive_parity_error from n_tty.c'
      Reported-by: NIvan <athlon_@mail.ru>
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      66528f90
    • P
      serial: Fix IGNBRK handling · ef8b9ddc
      Peter Hurley 提交于
      If IGNBRK is set without either BRKINT or PARMRK set, some uart
      drivers send a 0x00 byte for BREAK without the TTYBREAK flag to the
      line discipline, when it should send either nothing or the TTYBREAK flag
      set. This happens because the read_status_mask masks out the BI
      condition, which uart_insert_char() then interprets as a normal 0x00 byte.
      
      SUS v3 is clear regarding the meaning of IGNBRK; Section 11.2.2, General
      Terminal Interface - Input Modes, states:
        "If IGNBRK is set, a break condition detected on input shall be ignored;
         that is, not put on the input queue and therefore not read by any
         process."
      
      Fix read_status_mask to include the BI bit if IGNBRK is set; the
      lsr status retains the BI bit if a BREAK is recv'd, which is
      subsequently ignored in uart_insert_char() when masked with the
      ignore_status_mask.
      
      Affected drivers:
      8250 - all
      serial_txx9
      mfd
      amba-pl010
      amba-pl011
      atmel_serial
      bfin_uart
      dz
      ip22zilog
      max310x
      mxs-auart
      netx-serial
      pnx8xxx_uart
      pxa
      sb1250-duart
      sccnxp
      serial_ks8695
      sirfsoc_uart
      st-asc
      vr41xx_siu
      zs
      sunzilog
      fsl_lpuart
      sunsab
      ucc_uart
      bcm63xx_uart
      sunsu
      efm32-uart
      pmac_zilog
      mpsc
      msm_serial
      m32r_sio
      
      Unaffected drivers:
      omap-serial
      rp2
      sa1100
      imx
      icom
      
      Annotated for fixes:
      altera_uart
      mcf
      
      Drivers without break detection:
      21285
      xilinx-uartps
      altera_jtaguart
      apbuart
      arc-uart
      clps711x
      max3100
      uartlite
      msm_serial_hs
      nwpserial
      lantiq
      vt8500_serial
      
      Unknown:
      samsung
      mpc52xx_uart
      bfin_sport_uart
      cpm_uart/core
      
      Fixes: Bugzilla #71651, '8250_core.c incorrectly handles IGNBRK flag'
      Reported-by: NIvan <athlon_@mail.ru>
      Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ef8b9ddc
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 894e552c
      Linus Torvalds 提交于
      Pull security maintainership update from James Morris:
       "Add Serge Hallyn as security subsystem co-maintainer"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        security: add Serge Hallyn as a maintainer
      894e552c
    • L
      Merge tag 'stable/for-linus-3.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 3d09c623
      Linus Torvalds 提交于
      Pull Xen fixes from David Vrabel:
       "Xen regression and PVH fixes for 3.16-rc1
      
         - fix dom0 PVH memory setup on latest unstable Xen releases
         - fix 64-bit x86 PV guest boot failure on Xen 3.1 and earlier
         - fix resume regression on non-PV (auto-translated physmap) guests"
      
      * tag 'stable/for-linus-3.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/grant-table: fix suspend for non-PV guests
        x86/xen: no need to explicitly register an NMI callback
        Revert "xen/pvh: Update E820 to work with PVH (v2)"
        x86/xen: fix memory setup for PVH dom0
      3d09c623
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 92b94417
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
       "These are primarily bug fixes with a performance improvement patch for
        the GHASH crypto algorithm (which went in during this merging window)
        and dts/defconfig/Kconfig updates.
      
         - ftrace_return_addr() macro fix for arm (introduced earlier via the
           arm64 tree)
         - stack alignment exception entry code fix
         - GHASH crypto algorithm fix and performance improvement
         - CMA buffer limited to 32-bit (until a better way to describe the
           system topology in DT)
         - UAPI sigcontext.h build fix
         - __kernel_old_{gid,uid}_t definitions fix (affecting 32-bit LTP)
         - ptrace fixes (kernel fault and 32-bit arm core dump)
         - pte_mknotpresent() fix
         - dts updates (APM SoC)
         - defconfig and Kconfig update"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: mm: remove broken &= operator from pmd_mknotpresent
        arm64: fix build error in sigcontext.h
        arm64: dts: Add more serial port nodes in APM X-Gene device tree
        arm64/dma: Removing ARCH_HAS_DMA_GET_REQUIRED_MASK macro
        arm64: ptrace: fix empty registers set in prstatus of aarch32 process core
        arm64: uid16: fix __kernel_old_{gid,uid}_t definitions
        arm64: ptrace: change fs when passing kernel pointer to regset code
        arm64: Limit the CMA buffer to 32-bit if ZONE_DMA
        arm/ftrace: fix ftrace_return_addr() to ftrace_return_address()
        arm64/crypto: improve performance of GHASH algorithm
        arm64/crypto: fix data corruption bug in GHASH algorithm
        arm64: defconfig update for LTP
        arm64: ftrace: Fix comment typo 'CONFIG_FUNCTION_GRAPH_FP_TEST'
        arm64: add ARCH_HAS_OPP to allow enabling OPP library
        arm64: restore alphabetic order in Kconfig
        arm64: Bug fix in stack alignment exception
      92b94417
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next · c4222e46
      Linus Torvalds 提交于
      Pull sparc fixes from David Miller:
       "Sparc sparse fixes from Sam Ravnborg"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next: (67 commits)
        sparc64: fix sparse warnings in int_64.c
        sparc64: fix sparse warning in ftrace.c
        sparc64: fix sparse warning in kprobes.c
        sparc64: fix sparse warning in kgdb_64.c
        sparc64: fix sparse warnings in compat_audit.c
        sparc64: fix sparse warnings in init_64.c
        sparc64: fix sparse warnings in aes_glue.c
        sparc: fix sparse warnings in smp_32.c + smp_64.c
        sparc64: fix sparse warnings in perf_event.c
        sparc64: fix sparse warnings in kprobes.c
        sparc64: fix sparse warning in tsb.c
        sparc64: clean up compat_sigset_t.seta handling
        sparc64: fix sparse "Should it be static?" warnings in signal32.c
        sparc64: fix sparse warnings in sys_sparc32.c
        sparc64: fix sparse warning in pci.c
        sparc64: fix sparse warnings in smp_64.c
        sparc64: fix sparse warning in prom_64.c
        sparc64: fix sparse warning in btext.c
        sparc64: fix sparse warnings in sys_sparc_64.c + unaligned_64.c
        sparc64: fix sparse warning in process_64.c
        ...
      
      Conflicts:
      	arch/sparc/include/asm/pgtable_64.h
      c4222e46
  3. 19 6月, 2014 15 次提交
  4. 18 6月, 2014 8 次提交
    • W
      arm64: mm: remove broken &= operator from pmd_mknotpresent · e3a920af
      Will Deacon 提交于
      This should be a plain old '&' and could easily lead to undefined
      behaviour if the target of a pmd_mknotpresent invocation was the same
      as the parameter.
      
      Fixes: 9c7e535f (arm64: mm: Route pmd thp functions through pte equivalents)
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Cc: <stable@vger.kernel.org> # v3.15
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      e3a920af
    • T
      Merge branch 'topic/core-vuln-fixes' into for-linus · 8d42fda9
      Takashi Iwai 提交于
      8d42fda9
    • T
      Merge tag 'asoc-v3.16-rc1' of... · 6c0c9a3d
      Takashi Iwai 提交于
      Merge tag 'asoc-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v3.16
      
      Quite a few build coverage fixes in here among the usual small driver
      fixes includling the sigmadsp change from Lars - moving the driver to
      separate modules per bus (which is basically just code motion) avoids
      issues with some combinations of buses being enabled.
      6c0c9a3d
    • L
      ALSA: control: Make sure that id->index does not overflow · 883a1d49
      Lars-Peter Clausen 提交于
      The ALSA control code expects that the range of assigned indices to a control is
      continuous and does not overflow. Currently there are no checks to enforce this.
      If a control with a overflowing index range is created that control becomes
      effectively inaccessible and unremovable since snd_ctl_find_id() will not be
      able to find it. This patch adds a check that makes sure that controls with a
      overflowing index range can not be created.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NJaroslav Kysela <perex@perex.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      883a1d49
    • L
      ALSA: control: Handle numid overflow · ac902c11
      Lars-Peter Clausen 提交于
      Each control gets automatically assigned its numids when the control is created.
      The allocation is done by incrementing the numid by the amount of allocated
      numids per allocation. This means that excessive creation and destruction of
      controls (e.g. via SNDRV_CTL_IOCTL_ELEM_ADD/REMOVE) can cause the id to
      eventually overflow. Currently when this happens for the control that caused the
      overflow kctl->id.numid + kctl->count will also over flow causing it to be
      smaller than kctl->id.numid. Most of the code assumes that this is something
      that can not happen, so we need to make sure that it won't happen
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NJaroslav Kysela <perex@perex.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ac902c11
    • L
      ALSA: control: Don't access controls outside of protected regions · fd9f26e4
      Lars-Peter Clausen 提交于
      A control that is visible on the card->controls list can be freed at any time.
      This means we must not access any of its memory while not holding the
      controls_rw_lock. Otherwise we risk a use after free access.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NJaroslav Kysela <perex@perex.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fd9f26e4
    • L
      ALSA: control: Fix replacing user controls · 82262a46
      Lars-Peter Clausen 提交于
      There are two issues with the current implementation for replacing user
      controls. The first is that the code does not check if the control is actually a
      user control and neither does it check if the control is owned by the process
      that tries to remove it. That allows userspace applications to remove arbitrary
      controls, which can cause a user after free if a for example a driver does not
      expect a control to be removed from under its feed.
      
      The second issue is that on one hand when a control is replaced the
      user_ctl_count limit is not checked and on the other hand the user_ctl_count is
      increased (even though the number of user controls does not change). This allows
      userspace, once the user_ctl_count limit as been reached, to repeatedly replace
      a control until user_ctl_count overflows. Once that happens new controls can be
      added effectively bypassing the user_ctl_count limit.
      
      Both issues can be fixed by instead of open-coding the removal of the control
      that is to be replaced to use snd_ctl_remove_user_ctl(). This function does
      proper permission checks as well as decrements user_ctl_count after the control
      has been removed.
      
      Note that by using snd_ctl_remove_user_ctl() the check which returns -EBUSY at
      beginning of the function if the control already exists is removed. This is not
      a problem though since the check is quite useless, because the lock that is
      protecting the control list is released between the check and before adding the
      new control to the list, which means that it is possible that a different
      control with the same settings is added to the list after the check. Luckily
      there is another check that is done while holding the lock in snd_ctl_add(), so
      we'll rely on that to make sure that the same control is not added twice.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NJaroslav Kysela <perex@perex.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      82262a46
    • L
      ALSA: control: Protect user controls against concurrent access · 07f4d9d7
      Lars-Peter Clausen 提交于
      The user-control put and get handlers as well as the tlv do not protect against
      concurrent access from multiple threads. Since the state of the control is not
      updated atomically it is possible that either two write operations or a write
      and a read operation race against each other. Both can lead to arbitrary memory
      disclosure. This patch introduces a new lock that protects user-controls from
      concurrent access. Since applications typically access controls sequentially
      than in parallel a single lock per card should be fine.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Acked-by: NJaroslav Kysela <perex@perex.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      07f4d9d7