19 May, 2016

10 commits

  • Pull input updates from Dmitry Torokhov:
    "First round of updates for the input subsystem. No new drivers here,
    just some driver fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: rotary-encoder - fix bare use of 'unsigned'
    Input: cm109 - spin_lock in complete() cleanup
    Input: cm109 - fix handling of volume and mute buttons
    Input: byd - don't wipe dynamically allocated memory twice
    Input: twl4030 - fix unsafe macro definition
    Input: twl6040-vibra - remove mutex
    Input: bcm_iproc_tsc - DT spelling s/clock-name/clock-names/
    Input: bcm_iproc_tsc - use syscon to access shared registers
    Input: ti_am335x_tsc - use SIMPLE_DEV_PM_OPS
    Input: omap-keypad - remove set_col_gpio_val() and get_row_gpio_val()
    Input: omap-keypad - drop empty PM stubs
    Input: omap-keypad - remove adjusting of scan delay
    Input: gpio-keys - clean up device tree binding example
    Input: kbtab - stop saving struct usb_device
    Input: gtco - stop saving struct usb_device
    Input: aiptek - stop saving struct usb_device
    Input: acecad - stop saving struct usb_device

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Arnd Bergmann:
    "Driver updates for ARM SoCs, these contain various things that touch
    the drivers/ directory but got merged through arm-soc for practical
    reasons.

    For the most part, this is now related to power management
    controllers, which have not yet been abstracted into a separate
    subsystem, and typically require some code in drivers/soc or arch/arm
    to control the power domains.

    Another large chunk here is a rework of the NVIDIA Tegra USB3.0
    support, which was surprisingly tricky and took a long time to get
    done.

    Finally, reset controller handling as always gets merged through here
    as well"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (97 commits)
    arm-ccn: Enable building as module
    soc/tegra: pmc: Add generic PM domain support
    usb: xhci: tegra: Add Tegra210 support
    usb: xhci: Add NVIDIA Tegra XUSB controller driver
    dt-bindings: usb: xhci-tegra: Add Tegra210 XUSB controller support
    dt-bindings: usb: Add NVIDIA Tegra XUSB controller binding
    PCI: tegra: Support per-lane PHYs
    dt-bindings: pci: tegra: Update for per-lane PHYs
    phy: tegra: Add Tegra210 support
    phy: Add Tegra XUSB pad controller support
    dt-bindings: phy: tegra-xusb-padctl: Add Tegra210 support
    dt-bindings: phy: Add NVIDIA Tegra XUSB pad controller binding
    phy: core: Allow children node to be overridden
    clk: tegra: Add interface to enable hardware control of SATA/XUSB PLLs
    drivers: firmware: psci: make two helper functions inline
    soc: renesas: rcar-sysc: Add support for R-Car H3 power areas
    soc: renesas: rcar-sysc: Add support for R-Car E2 power areas
    soc: renesas: rcar-sysc: Add support for R-Car M2-N power areas
    soc: renesas: rcar-sysc: Add support for R-Car M2-W power areas
    soc: renesas: rcar-sysc: Add support for R-Car H2 power areas
    ...

    Linus Torvalds
     
  • Pull ARM SoC defconfig updates from Arnd Bergmann:
    "As usual, a bunch of commits, mostly adding drivers and other options
    to defconfigs.

    We are adding three new defconfig files for the newly added 32-bit
    machines (aspeed and mps2), the rest is mainly housekeeping.

    The changes outside of arch/arm/config/ are for a Kconfig symbol that
    got renamed"

    * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (63 commits)
    ARM: aspeed: adapt defconfigs for new CONFIG_PRINTK_TIME
    ARM: u8500_defconfig: update sensor config
    ARM: u8500_defconfig: remove staging from defconfig
    ARM: multi_v7_defconfig: Remove unused Kconfig option MACH_UX500_DT
    ARM: at91/defconfig: sama5: add CONFIG_FHANDLE
    arm/configs: Add Aspeed defconfig
    arm/configs/multi_v5: Add Aspeed ast2400
    ARM: at91: sama5: Update defconfig
    ARM: imx_v6_v7_defconfig: add CONFIG_MICREL_PHY
    ARM: imx_v6_v7_defconfig: add CONFIG_I2C_GPIO
    ARM: multi_v7: Enable Tegra XUSB controller in defconfig
    ARM: tegra: Enable XUSB controller in defconfig
    ARM: omap2plus_defconfig: Enable PWM and ir-rx51 as loadable modules
    ARM: multi_v7_defconfig: add the Atmel sama5d2-compatible ADC driver
    ARM: multi_v7_defconfig: add the Atmel Audio microphone interface PDMIC
    ARM: multi_v7_defconfig: add Atmel ISI (Image Sensor Interface) driver
    ARM: multi_v7_defconfig: add Atmel watchdog timers
    ARM: multi_v7_defconfig: add HLCDC drivers as modules
    ARM: at91/defconfig: add PDMIC driver to sama5_defconfig
    ARM: at91/defconfig: add HLCDC driver to sama5_defconfig
    ...

    Linus Torvalds
     
  • Pull ARM 64-bit DT updates from Arnd Bergmann:
    "We continue ramping up platform support for 64-bit ARM machines, with
    111 individual non-merge changesets touching 21 platforms.

    The LG1312 platform is completely new and is the first ARM platform by
    LG that we support in the mainline kernel. Two other SoCs got added
    that are updated versions of existing SoC families, so the port mainly
    consists of new dts files:

    - The Hisilicon Hip06/D03 is the latest server platform from
    Huawei/Hisilicon, and follows the Hip05/D02 platform.

    - Rockchip RK3399 follows the 32-bit RK3288 that is popular in
    low-end Chromebooks and the 64-bit RK3368 that is mainly found in
    chinese Android TV boxes.

    The 96Boards HiKey based on the Hisilicon Hi6220 (Kirin 620) gets a
    long-awaited overhaul with a lot of devices enabled in the DT, so it
    should be much more usable with a mainline kernel now. See also

    https://plus.google.com/111524780435806926688/posts/PeGb2VsNhJd

    A lot of work went into enabling new device drivers on existing
    machines, but we also have a couple of new commercially available
    machines:

    - Google Pixel C laptop based on Tegra210
    - Hardkernel Odroid C2 Based on Amlogic Meson GXBB (S905)
    - Geekbuying GeekBox based on Rockchip RK3368

    And finally, a couple of reference or development platforms that are
    not end-user platforms but are used for trying out the respective SoC
    platforms:

    - Amlogic Meson GXBB P200 and P201 development systems
    - NXP Layerscape 1043A QDS development board
    - Hisilicon Hip06 D03 server board, as mentioned above
    - LG1312 Reference Design
    - RK3399 Evaluation Board"

    * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (104 commits)
    arm64: dts: marvell: add XOR node for Armada 3700 SoC
    dt-bindings: document rockchip rk3399-evb board
    arm64: dts: rockchip: add dts file for RK3399 evaluation board
    arm64: dts: rockchip: add core dtsi file for RK3399 SoCs
    dt-bindings: rockchip-dw-mshc: add description for rk3399
    arm64: dts: marvell: Use a SoC-specific compatible for xHCI on Armada37xx
    arm64: dts: marvell: Rename armada-37xx USB node
    arm64: dts: marvell: Clean up armada-3720-db
    Documentation: arm64: Add Hisilicon Hip06 D03 dts binding
    arm64: dts: Add initial dts for Hisilicon Hip06 D03 board
    arm64: dts: hip05: Add nor flash support
    arm64: dts: hip05: fix its node without msi-cells
    arm64: dts: r8a7795: Don't disable referenced optional clocks
    arm64: dts: salvator-x: populate EXTALR
    arm64: dts: r8a7795: enable PCIe on Salvator-X
    arm64: dts: r8a7795: Add PCIe nodes
    arm64: tegra: Add IOMMU node to GM20B on Tegra210
    arm64: tegra: Add reference clock to GM20B on Tegra210
    dt-bindings: Add documentation for GM20B GPU
    dt-bindings: gk20a: Document iommus property
    ...

    Linus Torvalds
     
  • Pull ARM DT updates from Arnd Bergmann:
    "These are all the updates to device tree files for 32-bit platforms,
    which as usual makes up the bulk of the ARM SoC changes: 462 non-merge
    changesets, 450 files changed, 23340 insertions, 5216 deletions.

    The three platforms that are added with the "soc" branch are here as
    well, and we add some related machine files:

    - For Aspeed AST2400/AST2500, we get the evaluation platform and the
    Tyan Palmetto POWER8 mainboard that uses the AST2400 BMC
    - For Oxnas 810SE, the Western Digital "My Book World Edition" is
    added as the only platform at the moment.
    - For ARM MPS2, the AN385 (Cortex-M3) and AN399 (Cortex-M7) are
    supported

    On the ARM Realview development platform, we now support all machines
    with device tree, previously only the board files were supported,
    which in turn will likely be removed soon.

    Qualcomm IPQ4019 is the second generation ARM based "Internet
    Processor", following the IPQ806x that is used in many high-end WiFi
    routers. This one integrates two ath10k wifi radios that were
    previously on separate chips.

    Other boards that got added for existing chips are:

    Ti OMAP family:
    - Amazon Kindle Fire, first generation, tablet and ebook reader
    - OnRISC Baltos iR 2110 and 3220 embedded industrial PCs
    - TI AM5728 IDK, TI AM3359 ICE-V2, and TI DRA722 Rev C EVM
    development systems

    Samsung EXYNOS platform:
    - Samsung ARTIK5 evaluation board, see

    https://www.artik.io/modules/overview/artik-5/

    NXP i.MX platforms:
    - Ka-Ro electronics TX6S-8034, TX6S-8035, TX6U-8033, TX6U-81xx,
    TX6Q-1036, TX6Q-1110/-1130, TXUL-0010 and TXUL-0011 industrial
    SoM modules
    - Embest MarS Board i.MX6Dual DIY platform
    - Boundary Devices i.MX6 Quad Plus Nitrogen6_MAX and SoloX
    Nitrogen6sx embedded boards
    - Technexion Pico i.MX6UL compute module
    - ZII VF610 Development Board

    Marvell embedded (mvebu, orion, kirkwood) platforms:
    - Linksys Viper (E4200v2 / EA4500) WiFi router
    - Buffalo Kurobox Pro NAS

    Qualcomm Snapdragon:
    - Arrow DragonBoard 600c (96boards) with APQ8064 Snapdragon 600

    Rockchips platform:
    - mqmaker MiQi single-board computer

    Altera SoCFPGA:
    - samtec VIN|ING 1000 vehicle communication interface

    Allwinner Sunxi platforms:
    - Dserve DSRV9703C tablet
    - Difrnce DIT4350 tablet
    - Colorfly E708 Q1 tablet
    - Polaroid MID2809PXE04 tablet
    - Olimex A20 OLinuXino LIME2 single board computer
    - Xunlong Orange Pi 2, Orange Pi One, and Orange Pi PC single board
    computers

    Across many platforms, bug fixes went in to address warnings that dtc
    now emits with 'make dtbs W=1'. Further changes for device enablement
    went into Ti OMAP, bcm283x (Raspberry Pi), bcm47xx (wifi router), Ti
    Davinci, Samsung EXYNOS, Marvell mvebu/kirkwood/orion, NXP i.MX/Vybrid
    NXP LPC18xx, NXP LPC32xx, Renesas shmobile/r-mobile/r-car, Rockchips
    rk3xxx, ST Ux500, ST STi, Atmel AT91/SAMA5, Altera SoCFPGA, Allwinner
    Sunxi, Sigma Designs Tango, NVIDIA Tegra, Socionext Uniphier and ARM
    Versatile Express"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (458 commits)
    ARM: dts: tango4: Import watchdog node
    ARM: dts: tango4: Update cpus node for cpufreq
    ARM: dts: tango4: Update DT to match clk driver
    ARM: dts: tango4: Initial thermal support
    arm/dst: Add Aspeed ast2500 device tree
    arm/dts: Add Aspeed ast2400 device tree
    ARM: sun7i: dt: Add pll3 and pll7 clocks
    ARM: dts: sunxi: Add a olinuxino-lime2-emmc
    ARM: dts: at91: sama5d4: add trng node
    ARM: dts: at91: sama5d3: add trng node
    ARM: dts: at91: sama5d2: add trng node
    ARM: dts: at91: at91sam9g45 family: reduce the trng register map size
    ARM: sun4i: dt: Add pll3 and pll7 clocks
    ARM: sun5i: chip: Enable the TV Encoder
    ARM: sun5i: r8: Add display blocks to the DTSI
    ARM: sun5i: a13: Add display and TCON clocks
    ARM: dts: ux500: configure the accelerometers open drain
    ARM: mx5: dts: Enable USB OTG on M53EVK
    ARM: dts: imx6ul-14x14-evk: Add audio support
    ARM: dts: imx6qdl: Remove unneeded unit-addresses
    ...

    Linus Torvalds
     
  • Pull ARM SoC 64-bit changes from Arnd Bergmann:
    "One new platform gets added this time: The Cortex-A53 based LG
    Electronics LG1K platform used in digital TVs.

    The other changes are mostly smaller updates to the defconfig files,
    to enable additional platform specific drivers, as they get merged
    through the subsystem trees"

    * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    arm64: configs: add options useful for Armada 7K/8K support
    arm64: defconfig: Add Juno SATA controller
    arm64: defconfig: enable freescale/nxp config options
    arm64: defconfig: enable 48-bit virtual addresses
    arm64: defconfig: cleanup the defconfig
    MAINTAINERS: update entry for Marvell ARM platform maintainers
    arm64: marvell: enable AP806 and CP110 syscon driver
    arm64: Kconfig: select sp804 timer for ARCH_HISI
    arm64: defconfig: enable configs for WLAN and TI WL1835 as modules
    arm64: defconfig: enable several common USB network adapters
    arm64: defconfig: add CONFIG_SPI_SPIDEV as module
    arm64: defconfig: Enable the PMIC and regulator for Hi6220 and 96boards HiKey
    arm64: defconfig: Add Renesas R-Car USB 3.0 driver support
    MAINTAINERS: add Chanho Min as ARM/LG1K maintainer
    arm64: defconfig: enable ARCH_LG1K
    arm64: add Kconfig entry for LG1K SoC family
    arm64: defconfig: Enable PL330 DMA controller
    arm64: defconfig: enable basic boot for Amlogic meson

    Linus Torvalds
     
  • Pull ARM SoC platform updates from Arnd Bergmann:
    "We get support for three new 32-bit SoC platforms this time.

    The amount of changes in arch/arm for any of them is miniscule, as all
    the interesting code is in device driver subsystems (irqchip, clk,
    pinctrl, ...) these days. I'm listing them here, as the addition of
    the Kconfig statement is the main relevant milestone for a new
    platform. In each case, some drivers are are shared with existing
    platforms, while other drivers are added for v4.7 as well, or come in
    a later release.

    - The Aspeed platform is probably the most interesting one, this is
    what most whitebox servers use as their baseboard management
    controller. We get support for the very common ast2400 and ast2500
    SoCs. The OpenBMC project focuses on this chip, and the LWN
    article about their ELC 2016 presentation at

    https://lwn.net/Articles/683320/

    triggered the submission, but the code comes from IBM's OpenPOWER
    team rather than the team at Facebook. There are still a lot more
    drivers that need to get added over time, and I hope both teams can
    work together on that.

    - OXNAS is an old platform for Network Attached Storage devices from
    Oxford Semiconductor. There are models with ARM10 (!) and
    ARM11MPCore cores, but for now, we only support the original ARM9
    based versions. The product lineup was subsequently part of PLX,
    Avago and now the new Broadcom Ltd.

    https://wiki.openwrt.org/doc/hardware/soc/soc.oxnas

    has some more information.

    - V2M-MPS2 is a prototyping platform from ARM for their Cortex-M
    cores and is related to the existing Realview / Versatile Express
    lineup, but without MMU.

    We now support various NOMMU platforms, so adding a new one is
    fairly straightforward.

    http://infocenter.arm.com/help/topic/com.arm.doc.100112_0100_03_en/

    has detailed information about the platform.

    Other noteworthy updates:

    - Work on LPC32xx has resumed, and Vladimir Zapolskiy and Sylvain
    Lemieux are now maintaining the platform.

    This is an older ARM9 based platform from NXP (not Freescale), but
    it remains in use in embedded markets.

    - Kevin Hilman is now co-maintaining the Amlogic Meson platform for
    both 32-bit and 64-bit ARM, and started contributing some patches.

    - As is often the case, work on the OMAP platforms makes up the bulk
    of the actual SoC code changes in arch/arm, but there isn't a lot
    of that either"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (42 commits)
    MAINTAINERS: ARM/Amlogic: add co-maintainer, misc. updates
    MAINTAINERS: add ARM/NXP LPC32XX SoC specific drivers to the section
    MAINTAINERS: add new maintainers of NXP LPC32xx SoC
    MAINTAINERS: move ARM/NXP LPC32xx record to ARM section
    arm: Add Aspeed machine
    ARM: lpc32xx: remove duplicate const on lpc32xx_auxdata_lookup
    ARM: lpc32xx: remove leftovers of legacy clock source and provider drivers
    ARM: lpc32xx: remove reboot header file
    ARM: dove: Remove CLK_IS_ROOT
    ARM: orion5x: Remove CLK_IS_ROOT
    ARM: mv78xx0: Remove CLK_IS_ROOT
    ARM: davinci: da850: use clk->set_parent for async3
    ARM: davinci: Move clock init after ioremap.
    MAINTAINERS: Update ARM Versatile Express platform entry
    ARM: vexpress/mps2: introduce MPS2 platform
    MAINTAINERS: add maintainer entry for ARM/OXNAS platform
    ARM: Add new mach-oxnas
    irqchip: versatile-fpga: add new compatible for OX810SE SoC
    ARM: uniphier: correct the call order of of_node_put()
    MAINTAINERS: fix stale TI DaVinci entries
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups and fixes from Arnd Bergmann:
    "Traditionally we've had two separate branches for cleanups and
    non-critical bug fixes, but both of these got smaller with each
    release and the differences are rather unclear now, so it seems more
    appropriate to have a combined branch.

    The most notable change is for OMAP, which gets a small rework to
    simplify handling of the AUXDATA mechanism used on machines that are
    not completely DT based yet, along with other work that is used as
    preparation for dropping the legacy board files"

    * tag 'armsoc-cleanups-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: exynos: Add interrupt line to MAX8997 PMIC on exynos4210-trats
    ARM: dts: exynos: Fix regulator name to avoid forbidden character on exynos4210-trats
    ARM: dts: exynos: Add MFC memory banks for Peach boards
    ARM: OMAP2+: n900 needs MMC slot names for legacy user space
    ARM: OMAP2+: Add more functions to pwm pdata for ir-rx51
    ARM: debug: remove extraneous DEBUG_HI3716_UART option
    ARM: OMAP2+: Simplify auxdata by using the generic match
    of/platform: Allow secondary compatible match in of_dev_lookup
    ARM: davinci: use IRQCHIP_DECLARE for cp_intc
    ARM: davinci: remove unused DA8XX_NUM_UARTS
    ARM: davinci: simplify call to of populate
    ARM: DaVinci USB: removed deprecated properties from MUSB config
    ARM: rockchip: Fix use of plain integer as NULL pointer
    ARM: realview: hide unused 'pmu_device' object
    soc: versatile: dynamically detect RealView HBI numbers

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "The s390 patches for the 4.7 merge window have the usual bug fixes and
    cleanups, and the following new features:

    - An interface for dasd driver to query if a volume is online to
    another operating system

    - A new ioctl for the dasd driver to verify the format for a range of
    tracks

    - Following the example of x86 the struct fpu is now allocated with
    the task_struct

    - The 'report_error' interface for the PCI bus to send an
    adapter-error notification from user space to the service element
    of the machine"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (29 commits)
    s390/vmem: remove unused function parameter
    s390/vmem: fix identity mapping
    s390: add missing include statements
    s390: add missing declarations
    s390: make couple of variables and functions static
    s390/cache: remove superfluous locking
    s390/cpuinfo: simplify locking and skip offline cpus early
    s390/3270: hangup the 3270 tty after a disconnect
    s390/3270: handle reconnect of a tty with a different size
    s390/3270: avoid endless I/O loop with disconnected 3270 terminals
    s390/3270: fix garbled output on 3270 tty view
    s390/3270: fix view reference counting
    s390/3270: add missing tty_kref_put
    s390/dumpstack: implement and use return_address()
    s390/cpum_sf: Remove superfluous SMP function call
    s390/cpum_cf: Remove superfluous SMP function call
    s390/Kconfig: make z196 the default processor type
    s390/sclp: avoid compile warning in sclp_pci_report
    s390/fpu: allocate 'struct fpu' with the task_struct
    s390/crypto: cleanup and move the header with the cpacf definitions
    ...

    Linus Torvalds
     
  • Pull misc vfs cleanups from Al Viro:
    "Assorted cleanups and fixes all over the place"

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    coredump: only charge written data against RLIMIT_CORE
    coredump: get rid of coredump_params->written
    ecryptfs_lookup(): try either only encrypted or plaintext name
    ecryptfs: avoid multiple aliases for directories
    bpf: reject invalid names right in ->lookup()
    __d_alloc(): treat NULL name as QSTR("/", 1)
    mtd: switch ubi_open_volume_path() to vfs_stat()
    mtd: switch open_mtd_by_chdev() to use of vfs_stat()

    Linus Torvalds
     

18 May, 2016

9 commits

  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for kernel cycle v4.7:

    Core infrastructural changes:

    - Support for natively single-ended GPIO driver stages.

    This means that if the hardware has registers to configure open
    drain or open source configuration, we use that rather than (as we
    did before) try to emulate it by switching the line to an input to
    get high impedance.

    This is also documented throughly in Documentation/gpio/driver.txt
    for those of you who did not understand one word of what I just
    wrote.

    - Start to do away with the unnecessarily complex and unitelligible
    ARCH_REQUIRE_GPIOLIB and ARCH_WANT_OPTIONAL_GPIOLIB, another
    evolutional artifact from the time when the GPIO subsystem was
    unmaintained.

    Archs can now just select GPIOLIB and be done with it, cleanups to
    arches will trickle in for the next kernel. Some minor archs ACKed
    the changes immediately so these are included in this pull request.

    - Advancing the use of the data pointer inside the GPIO device for
    storing driver data by switching the PowerPC, Super-H Unicore and
    a few other subarches or subsystem drivers in ALSA SoC, Input,
    serial, SSB, staging etc to use it.

    - The initialization now reads the input/output state of the GPIO
    lines, so that each GPIO descriptor knows - if this callback is
    implemented - whether the line is input or output. This also
    reflects nicely in userspace "lsgpio".

    - It is now possible to name GPIO producer names, line names, from
    the device tree. (Platform data has been supported for a while).
    I bet we will get a similar mechanism for ACPI one of those days.
    This makes is possible to get sensible producer names for e.g.
    GPIO rails in "lsgpio" in userspace.

    New drivers:

    - New driver for the Loongson1.

    - The XLP driver now supports Broadcom Vulcan ARM64.

    - The IT87 driver now supports IT8620 and IT8628.

    - The PCA953X driver now supports Galileo Gen2.

    Driver improvements:

    - MCP23S08 was switched to use the gpiolib irqchip helpers and now
    also suppors level-triggered interrupts.

    - 74x164 and RCAR now supports the .set_multiple() callback

    - AMDPT was converted to use generic GPIO.

    - TC3589x, TPS65218, SX150X, F7188X, MENZ127, VX855, WM831X, WM8994
    support the new single ended callback for open drain and in some
    cases open source.

    - Implement the .get_direction() callback for a few more drivers like
    PL061, Xgene.

    Cleanups:

    - Paul Gortmaker combed through the drivers and de-modularized those
    who are not really modules.

    - Move the GPIO poweroff DT bindings to the power subdir where they
    belong.

    - Rename gpio-generic.c to gpio-mmio.c, which is much more to the
    point. That's what it is handling, nothing more, nothing less"

    * tag 'gpio-v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (126 commits)
    MIPS: do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
    gpio: zevio: make it explicitly non-modular
    gpio: timberdale: make it explicitly non-modular
    gpio: stmpe: make it explicitly non-modular
    gpio: sodaville: make it explicitly non-modular
    pinctrl: sh-pfc: Let gpio_chip.to_irq() return zero on error
    gpio: dwapb: Add ACPI device ID for DWAPB GPIO controller on X-Gene platforms
    gpio: dt-bindings: add wd,mbl-gpio bindings
    gpio: of: make it possible to name GPIO lines
    gpio: make gpiod_to_irq() return negative for NO_IRQ
    gpio: xgene: implement .get_direction()
    gpio: xgene: Enable ACPI support for X-Gene GFC GPIO driver
    gpio: tegra: Implement gpio_get_direction callback
    gpio: set up initial state from .get_direction()
    gpio: rename gpio-generic.c into gpio-mmio.c
    gpio: generic: fix GPIO_GENERIC_PLATFORM is set to module case
    gpio: dwapb: add gpio-signaled acpi event support
    gpio: dwapb: convert device node to fwnode
    gpio: dwapb: remove name from dwapb_port_property
    gpio/qoriq: select IRQ_DOMAIN
    ...

    Linus Torvalds
     
  • Pull livepatching updates from Jiri Kosina:

    - remove of our own implementation of architecture-specific relocation
    code and leveraging existing code in the module loader to perform
    arch-dependent work, from Jessica Yu.

    The relevant patches have been acked by Rusty (for module.c) and
    Heiko (for s390).

    - live patching support for ppc64le, which is a joint work of Michael
    Ellerman and Torsten Duwe. This is coming from topic branch that is
    share between livepatching.git and ppc tree.

    - addition of livepatching documentation from Petr Mladek

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
    livepatch: make object/func-walking helpers more robust
    livepatch: Add some basic livepatch documentation
    powerpc/livepatch: Add live patching support on ppc64le
    powerpc/livepatch: Add livepatch stack to struct thread_info
    powerpc/livepatch: Add livepatch header
    livepatch: Allow architectures to specify an alternate ftrace location
    ftrace: Make ftrace_location_range() global
    livepatch: robustify klp_register_patch() API error checking
    Documentation: livepatch: outline Elf format and requirements for patch modules
    livepatch: reuse module loader code to write relocations
    module: s390: keep mod_arch_specific for livepatch modules
    module: preserve Elf information for livepatch modules
    Elf: add livepatch-specific Elf constants

    Linus Torvalds
     
  • Pull trivial tree updates from Jiri Kosina.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (21 commits)
    gitignore: fix wording
    mfd: ab8500-debugfs: fix "between" in printk
    memstick: trivial fix of spelling mistake on management
    cpupowerutils: bench: fix "average"
    treewide: Fix typos in printk
    IB/mlx4: printk fix
    pinctrl: sirf/atlas7: fix printk spelling
    serial: mctrl_gpio: Grammar s/lines GPIOs/line GPIOs/, /sets/set/
    w1: comment spelling s/minmum/minimum/
    Blackfin: comment spelling s/divsor/divisor/
    metag: Fix misspellings in comments.
    ia64: Fix misspellings in comments.
    hexagon: Fix misspellings in comments.
    tools/perf: Fix misspellings in comments.
    cris: Fix misspellings in comments.
    c6x: Fix misspellings in comments.
    blackfin: Fix misspelling of 'register' in comment.
    avr32: Fix misspelling of 'definitions' in comment.
    treewide: Fix typos in printk
    Doc: treewide : Fix typos in DocBook/filesystem.xml
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Highlights:

    1) Support SPI based w5100 devices, from Akinobu Mita.

    2) Partial Segmentation Offload, from Alexander Duyck.

    3) Add GMAC4 support to stmmac driver, from Alexandre TORGUE.

    4) Allow cls_flower stats offload, from Amir Vadai.

    5) Implement bpf blinding, from Daniel Borkmann.

    6) Optimize _ASYNC_ bit twiddling on sockets, unless the socket is
    actually using FASYNC these atomics are superfluous. From Eric
    Dumazet.

    7) Run TCP more preemptibly, also from Eric Dumazet.

    8) Support LED blinking, EEPROM dumps, and rxvlan offloading in mlx5e
    driver, from Gal Pressman.

    9) Allow creating ppp devices via rtnetlink, from Guillaume Nault.

    10) Improve BPF usage documentation, from Jesper Dangaard Brouer.

    11) Support tunneling offloads in qed, from Manish Chopra.

    12) aRFS offloading in mlx5e, from Maor Gottlieb.

    13) Add RFS and RPS support to SCTP protocol, from Marcelo Ricardo
    Leitner.

    14) Add MSG_EOR support to TCP, this allows controlling packet
    coalescing on application record boundaries for more accurate
    socket timestamp sampling. From Martin KaFai Lau.

    15) Fix alignment of 64-bit netlink attributes across the board, from
    Nicolas Dichtel.

    16) Per-vlan stats in bridging, from Nikolay Aleksandrov.

    17) Several conversions of drivers to ethtool ksettings, from Philippe
    Reynes.

    18) Checksum neutral ILA in ipv6, from Tom Herbert.

    19) Factorize all of the various marvell dsa drivers into one, from
    Vivien Didelot

    20) Add VF support to qed driver, from Yuval Mintz"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1649 commits)
    Revert "phy dp83867: Fix compilation with CONFIG_OF_MDIO=m"
    Revert "phy dp83867: Make rgmii parameters optional"
    r8169: default to 64-bit DMA on recent PCIe chips
    phy dp83867: Make rgmii parameters optional
    phy dp83867: Fix compilation with CONFIG_OF_MDIO=m
    bpf: arm64: remove callee-save registers use for tmp registers
    asix: Fix offset calculation in asix_rx_fixup() causing slow transmissions
    switchdev: pass pointer to fib_info instead of copy
    net_sched: close another race condition in tcf_mirred_release()
    tipc: fix nametable publication field in nl compat
    drivers: net: Don't print unpopulated net_device name
    qed: add support for dcbx.
    ravb: Add missing free_irq() calls to ravb_close()
    qed: Remove a stray tab
    net: ethernet: fec-mpc52xx: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fec-mpc52xx: use phydev from struct net_device
    bpf, doc: fix typo on bpf_asm descriptions
    stmmac: hardware TX COE doesn't work when force_thresh_dma_mode is set
    net: ethernet: fs-enet: use phy_ethtool_{get|set}_link_ksettings
    net: ethernet: fs-enet: use phydev from struct net_device
    ...

    Linus Torvalds
     
  • Pull block driver updates from Jens Axboe:
    "On top of the core pull request, this is the drivers pull request for
    this merge window. This contains:

    - Switch drivers to the new write back cache API, and kill off the
    flush flags. From me.

    - Kill the discard support for the STEC pci-e flash driver. It's
    trivially broken, and apparently unmaintained, so it's safer to
    just remove it. From Jeff Moyer.

    - A set of lightnvm updates from the usual suspects (Matias/Javier,
    and Simon), and fixes from Arnd, Jeff Mahoney, Sagi, and Wenwei
    Tao.

    - A set of updates for NVMe:

    - Turn the controller state management into a proper state
    machine. From Christoph.

    - Shuffling of code in preparation for NVMe-over-fabrics, also
    from Christoph.

    - Cleanup of the command prep part from Ming Lin.

    - Rewrite of the discard support from Ming Lin.

    - Deadlock fix for namespace removal from Ming Lin.

    - Use the now exported blk-mq tag helper for IO termination.
    From Sagi.

    - Various little fixes from Christoph, Guilherme, Keith, Ming
    Lin, Wang Sheng-Hui.

    - Convert mtip32xx to use the now exported blk-mq tag iter function,
    from Keith"

    * 'for-4.7/drivers' of git://git.kernel.dk/linux-block: (74 commits)
    lightnvm: reserved space calculation incorrect
    lightnvm: rename nr_pages to nr_ppas on nvm_rq
    lightnvm: add is_cached entry to struct ppa_addr
    lightnvm: expose gennvm_mark_blk to targets
    lightnvm: remove mgt targets on mgt removal
    lightnvm: pass dma address to hardware rather than pointer
    lightnvm: do not assume sequential lun alloc.
    nvme/lightnvm: Log using the ctrl named device
    lightnvm: rename dma helper functions
    lightnvm: enable metadata to be sent to device
    lightnvm: do not free unused metadata on rrpc
    lightnvm: fix out of bound ppa lun id on bb tbl
    lightnvm: refactor set_bb_tbl for accepting ppa list
    lightnvm: move responsibility for bad blk mgmt to target
    lightnvm: make nvm_set_rqd_ppalist() aware of vblks
    lightnvm: remove struct factory_blks
    lightnvm: refactor device ops->get_bb_tbl()
    lightnvm: introduce nvm_for_each_lun_ppa() macro
    lightnvm: refactor dev->online_target to global nvm_targets
    lightnvm: rename nvm_targets to nvm_tgt_type
    ...

    Linus Torvalds
     
  • In the current implementation of ARM64 eBPF JIT, R23 and R24 are used for
    tmp registers, which are callee-saved registers. This leads to variable size
    of JIT prologue and epilogue. The latest blinding constant change prefers to
    constant size of prologue and epilogue. AAPCS reserves R9 ~ R15 for temp
    registers which not need to be saved/restored during function call. So, replace
    R23 and R24 to R10 and R11, and remove tmp_used flag to save 2 instructions for
    some jited BPF program.

    CC: Daniel Borkmann
    Acked-by: Zi Shen Lim
    Signed-off-by: Yang Shi
    Acked-by: Catalin Marinas
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Yang Shi
     
  • Pull parallel filesystem directory handling update from Al Viro.

    This is the main parallel directory work by Al that makes the vfs layer
    able to do lookup and readdir in parallel within a single directory.
    That's a big change, since this used to be all protected by the
    directory inode mutex.

    The inode mutex is replaced by an rwsem, and serialization of lookups of
    a single name is done by a "in-progress" dentry marker.

    The series begins with xattr cleanups, and then ends with switching
    filesystems over to actually doing the readdir in parallel (switching to
    the "iterate_shared()" that only takes the read lock).

    A more detailed explanation of the process from Al Viro:
    "The xattr work starts with some acl fixes, then switches ->getxattr to
    passing inode and dentry separately. This is the point where the
    things start to get tricky - that got merged into the very beginning
    of the -rc3-based #work.lookups, to allow untangling the
    security_d_instantiate() mess. The xattr work itself proceeds to
    switch a lot of filesystems to generic_...xattr(); no complications
    there.

    After that initial xattr work, the series then does the following:

    - untangle security_d_instantiate()

    - convert a bunch of open-coded lookup_one_len_unlocked() to calls of
    that thing; one such place (in overlayfs) actually yields a trivial
    conflict with overlayfs fixes later in the cycle - overlayfs ended
    up switching to a variant of lookup_one_len_unlocked() sans the
    permission checks. I would've dropped that commit (it gets
    overridden on merge from #ovl-fixes in #for-next; proper resolution
    is to use the variant in mainline fs/overlayfs/super.c), but I
    didn't want to rebase the damn thing - it was fairly late in the
    cycle...

    - some filesystems had managed to depend on lookup/lookup exclusion
    for *fs-internal* data structures in a way that would break if we
    relaxed the VFS exclusion. Fixing hadn't been hard, fortunately.

    - core of that series - parallel lookup machinery, replacing
    ->i_mutex with rwsem, making lookup_slow() take it only shared. At
    that point lookups happen in parallel; lookups on the same name
    wait for the in-progress one to be done with that dentry.

    Surprisingly little code, at that - almost all of it is in
    fs/dcache.c, with fs/namei.c changes limited to lookup_slow() -
    making it use the new primitive and actually switching to locking
    shared.

    - parallel readdir stuff - first of all, we provide the exclusion on
    per-struct file basis, same as we do for read() vs lseek() for
    regular files. That takes care of most of the needed exclusion in
    readdir/readdir; however, these guys are trickier than lookups, so
    I went for switching them one-by-one. To do that, a new method
    '->iterate_shared()' is added and filesystems are switched to it
    as they are either confirmed to be OK with shared lock on directory
    or fixed to be OK with that. I hope to kill the original method
    come next cycle (almost all in-tree filesystems are switched
    already), but it's still not quite finished.

    - several filesystems get switched to parallel readdir. The
    interesting part here is dealing with dcache preseeding by readdir;
    that needs minor adjustment to be safe with directory locked only
    shared.

    Most of the filesystems doing that got switched to in those
    commits. Important exception: NFS. Turns out that NFS folks, with
    their, er, insistence on VFS getting the fuck out of the way of the
    Smart Filesystem Code That Knows How And What To Lock(tm) have
    grown the locking of their own. They had their own homegrown
    rwsem, with lookup/readdir/atomic_open being *writers* (sillyunlink
    is the reader there). Of course, with VFS getting the fuck out of
    the way, as requested, the actual smarts of the smart filesystem
    code etc. had become exposed...

    - do_last/lookup_open/atomic_open cleanups. As the result, open()
    without O_CREAT locks the directory only shared. Including the
    ->atomic_open() case. Backmerge from #for-linus in the middle of
    that - atomic_open() fix got brought in.

    - then comes NFS switch to saner (VFS-based ;-) locking, killing the
    homegrown "lookup and readdir are writers" kinda-sorta rwsem. All
    exclusion for sillyunlink/lookup is done by the parallel lookups
    mechanism. Exclusion between sillyunlink and rmdir is a real rwsem
    now - rmdir being the writer.

    Result: NFS lookups/readdirs/O_CREAT-less opens happen in parallel
    now.

    - the rest of the series consists of switching a lot of filesystems
    to parallel readdir; in a lot of cases ->llseek() gets simplified
    as well. One backmerge in there (again, #for-linus - rockridge
    fix)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (74 commits)
    ext4: switch to ->iterate_shared()
    hfs: switch to ->iterate_shared()
    hfsplus: switch to ->iterate_shared()
    hostfs: switch to ->iterate_shared()
    hpfs: switch to ->iterate_shared()
    hpfs: handle allocation failures in hpfs_add_pos()
    gfs2: switch to ->iterate_shared()
    f2fs: switch to ->iterate_shared()
    afs: switch to ->iterate_shared()
    befs: switch to ->iterate_shared()
    befs: constify stuff a bit
    isofs: switch to ->iterate_shared()
    get_acorn_filename(): deobfuscate a bit
    btrfs: switch to ->iterate_shared()
    logfs: no need to lock directory in lseek
    switch ecryptfs to ->iterate_shared
    9p: switch to ->iterate_shared()
    fat: switch to ->iterate_shared()
    romfs, squashfs: switch to ->iterate_shared()
    more trivial ->iterate_shared conversions
    ...

    Linus Torvalds
     
  • Pull irq updates from Thomas Gleixner:
    "This update delivers:

    - Yet another interrupt chip diver (LPC32xx)
    - Core functions to handle partitioned per-cpu interrupts
    - Enhancements to the IPI core
    - Proper handling of irq type configuration
    - A large set of ARM GIC enhancements
    - The usual pile of small fixes, cleanups and enhancements"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    irqchip/bcm2836: Use a more generic memory barrier call
    irqchip/bcm2836: Fix compiler warning on 64-bit build
    irqchip/bcm2836: Drop smp_set_ops on arm64 builds
    irqchip/gic: Add helper functions for GIC setup and teardown
    irqchip/gic: Store GIC configuration parameters
    irqchip/gic: Pass GIC pointer to save/restore functions
    irqchip/gic: Return an error if GIC initialisation fails
    irqchip/gic: Remove static irq_chip definition for eoimode1
    irqchip/gic: Don't initialise chip if mapping IO space fails
    irqchip/gic: WARN if setting the interrupt type for a PPI fails
    irqchip/gic: Don't unnecessarily write the IRQ configuration
    irqchip: Mask the non-type/sense bits when translating an IRQ
    genirq: Ensure IRQ descriptor is valid when setting-up the IRQ
    irqchip/gic-v3: Configure all interrupts as non-secure Group-1
    irqchip/gic-v2m: Add workaround for Broadcom NS2 GICv2m erratum
    irqchip/irq-alpine-msi: Don't use
    irqchip/mbigen: Checking for IS_ERR() instead of NULL
    irqchip/gic-v3: Remove inexistant register definition
    irqchip/gicv3-its: Don't allow devices whose ID is outside range
    irqchip: Add LPC32xx interrupt controller driver
    ...

    Linus Torvalds
     
  • Pull crypto update from Herbert Xu:
    "API:

    - Crypto self tests can now be disabled at boot/run time.
    - Add async support to algif_aead.

    Algorithms:

    - A large number of fixes to MPI from Nicolai Stange.
    - Performance improvement for HMAC DRBG.

    Drivers:

    - Use generic crypto engine in omap-des.
    - Merge ppc4xx-rng and crypto4xx drivers.
    - Fix lockups in sun4i-ss driver by disabling IRQs.
    - Add DMA engine support to ccp.
    - Reenable talitos hash algorithms.
    - Add support for Hisilicon SoC RNG.
    - Add basic crypto driver for the MXC SCC.

    Others:

    - Do not allocate crypto hash tfm in NORECLAIM context in ecryptfs"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (77 commits)
    crypto: qat - change the adf_ctl_stop_devices to void
    crypto: caam - fix caam_jr_alloc() ret code
    crypto: vmx - comply with ABIs that specify vrsave as reserved.
    crypto: testmgr - Add a flag allowing the self-tests to be disabled at runtime.
    crypto: ccp - constify ccp_actions structure
    crypto: marvell/cesa - Use dma_pool_zalloc
    crypto: qat - make adf_vf_isr.c dependant on IOV config
    crypto: qat - Fix typo in comments
    lib: asn1_decoder - add MODULE_LICENSE("GPL")
    crypto: omap-sham - Use dma_request_chan() for requesting DMA channel
    crypto: omap-des - Use dma_request_chan() for requesting DMA channel
    crypto: omap-aes - Use dma_request_chan() for requesting DMA channel
    crypto: omap-des - Integrate with the crypto engine framework
    crypto: s5p-sss - fix incorrect usage of scatterlists api
    crypto: s5p-sss - Fix missed interrupts when working with 8 kB blocks
    crypto: s5p-sss - Use common BIT macro
    crypto: mxc-scc - fix unwinding in mxc_scc_crypto_register()
    crypto: mxc-scc - signedness bugs in mxc_scc_ablkcipher_req_init()
    crypto: talitos - fix ahash algorithms registration
    crypto: ccp - Ensure all dependencies are specified
    ...

    Linus Torvalds
     

17 May, 2016

21 commits

  • This is a merge of the cleanup and fixes-non-critical branches for the 4.7
    merge window. It seems more appropriate to send a single pull request
    for these than two separate ones, as both branches really contain both
    fixes and cleanups.

    * next/cleanup:
    ARM: debug: remove extraneous DEBUG_HI3716_UART option
    ARM: davinci: use IRQCHIP_DECLARE for cp_intc
    ARM: davinci: remove unused DA8XX_NUM_UARTS
    ARM: davinci: simplify call to of populate
    ARM: DaVinci USB: removed deprecated properties from MUSB config
    ARM: rockchip: Fix use of plain integer as NULL pointer
    ARM: realview: hide unused 'pmu_device' object
    soc: versatile: dynamically detect RealView HBI numbers

    * next/fixes-non-critical:
    ARM: dts: exynos: Add interrupt line to MAX8997 PMIC on exynos4210-trats
    ARM: dts: exynos: Fix regulator name to avoid forbidden character on exynos4210-trats
    ARM: dts: exynos: Add MFC memory banks for Peach boards
    ARM: OMAP2+: n900 needs MMC slot names for legacy user space
    ARM: OMAP2+: Add more functions to pwm pdata for ir-rx51
    ARM: EXYNOS: Properly skip unitialized parent clock in power domain on
    ARM: OMAP2+: Simplify auxdata by using the generic match
    of/platform: Allow secondary compatible match in of_dev_lookup

    Arnd Bergmann
     
  • Backmerge to resolve a conflict in ovl_lookup_real();
    "ovl_lookup_real(): use lookup_one_len_unlocked()" instead,
    but it was too late in the cycle to rebase.

    Al Viro
     
  • …el/git/rafael/linux-pm

    Pull device properties update from Rafael Wysocki:
    "Generic device properties framework update.

    Just one commit reworking the handling of built-in properties
    initialization and updating a few drivers in accordance with the core
    framework changes"

    * tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    device property: don't bother the drivers with struct property_set

    Linus Torvalds
     
  • Pull ACPI updates from Rafael Wysocki:
    "The new features here are ACPI 6.1 support (and some previously
    missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
    driver for the ACPI Generic Event Device (GED) feature introduced by
    ACPI 6.1 and the INT3406 thermal driver for display thermal
    management. Also the value returned by the _HRV (hardware revision)
    ACPI object will be exported to user space via sysfs now.

    In addition to that, ACPI on ARM64 will not depend on EXPERT any more.

    The rest is mostly fixes and cleanups and some code reorganization.

    Specifics:

    - In-kernel ACPICA code update to the upstream release 20160422
    adding support for ACPI 6.1 along with some previously missing bits
    of ACPI 6.0 support, making a fair amount of fixes and cleanups and
    reducing divergences between the upstream ACPICA and the in-kernel
    code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)

    - ACPI Generic Event Device (GED) support and a fix for it (Sinan
    Kaya, Paul Gortmaker)

    - INT3406 thermal driver for display thermal management and ACPI
    backlight support code reorganization related to it (Aaron Lu, Arnd
    Bergmann)

    - Support for exporting the value returned by the _HRV (hardware
    revision) ACPI object via sysfs (Betty Dall)

    - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)

    - Rework of the handling of ACPI _OSI mechanism allowing the
    _OSI("Darwin") support to be overridden from the kernel command
    line among other things (Lv Zheng, Chen Yu)

    - Rework of the ACPI tables override mechanism to prepare it for the
    introduction of overlays support going forward (Lv Zheng, Rafael
    Wysocki)

    - Fixes related to the ECDT support and module-level execution of AML
    (Lv Zheng)

    - ACPI PCI interrupts management update to make it work better on
    ARM64 mostly (Sinan Kaya)

    - ACPI SRAT handling update to make the code process all entires in
    the table order regardless of the entry type (Lukasz Anaczkowski)

    - EFI power off support for full-hardware ACPI platforms that don't
    support ACPI S5 (Chen Yu)

    - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
    Carpenter, Betty Dall)

    - acpi_dev_present() API rework to reduce possible confusion related
    to it (Lukas Wunner)

    - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"

    * tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
    ACPI / video: mark acpi_video_get_levels() inline
    Thermal / ACPI / video: add INT3406 thermal driver
    ACPI / GED: make evged.c explicitly non-modular
    ACPI / tables: Fix DSDT override mechanism
    ACPI / sysfs: fix error code in get_status()
    ACPICA: Update version to 20160422
    ACPICA: Move all ASCII utilities to a common file
    ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
    ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
    ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
    ACPICA: Hardware: Add optimized access bit width support
    ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
    ACPICA: Renamed some #defined flag constants for clarity
    ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
    ACPICA: ACPI 6.0: Update _BIX support for new package element
    ACPICA: ACPI 6.1: Support for new PCCT subtable
    ACPICA: Refactor evaluate_object to reduce nesting
    ACPICA: Divergence: remove unwanted spaces for typedef
    ACPI,PCI,IRQ: remove SCI penalize function
    ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
    ..

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "The majority of changes go into the cpufreq subsystem this time.

    To me, quite obviously, the biggest ticket item is the new "schedutil"
    governor. Interestingly enough, it's the first new cpufreq governor
    since the beginning of the git era (except for some out-of-the-tree
    ones).

    There are two main differences between it and the existing governors.
    First, it uses the information provided by the scheduler directly for
    making its decisions, so it doesn't have to track anything by itself.
    Second, it can invoke drivers (supporting that feature) to adjust CPU
    performance right away without having to spawn work items to be
    executed in process context or similar. Currently, the acpi-cpufreq
    driver is the only one supporting that mode of operation, but then it
    is used on a large number of systems.

    The "schedutil" governor as included here is very simple and mostly
    regarded as a foundation for future work on the integration of the
    scheduler with CPU power management (in fact, there is work in
    progress on top of it already). Nevertheless it works and the
    preliminary results obtained with it are encouraging.

    There also is some consolidation of CPU frequency management for ARM
    platforms that can add their machine IDs the the new stub dt-platdev
    driver now and that will take care of creating the requisite platform
    device for cpufreq-dt, so it is not necessary to do that in platform
    code any more. Several ARM platforms are switched over to using this
    generic mechanism.

    In addition to that, the intel_pstate driver is now going to respect
    CPU frequency limits set by the platform firmware (or a BMC) and
    provided via the ACPI _PPC object.

    The devfreq subsystem is getting a new "passive" governor for SoCs
    subsystems that will depend on somebody else to manage their voltage
    rails and its support for Samsung Exynos SoCs is consolidated.

    The rest is support for new hardware (Intel Broxton support in
    intel_idle for one example), bug fixes, optimizations and cleanups in
    a number of places.

    Specifics:

    - New cpufreq "schedutil" governor (making decisions based on CPU
    utilization information provided by the scheduler and capable of
    switching CPU frequencies right away if the underlying driver
    supports that) and support for fast frequency switching in the
    acpi-cpufreq driver (Rafael Wysocki)

    - Consolidation of CPU frequency management on ARM platforms allowing
    them to get rid of some platform-specific boilerplate code if they
    are going to use the cpufreq-dt driver (Viresh Kumar, Finley Xiao,
    Marc Gonzalez)

    - Support for ACPI _PPC and CPU frequency limits in the intel_pstate
    driver (Srinivas Pandruvada)

    - Fixes and cleanups in the cpufreq core and generic governor code
    (Rafael Wysocki, Sai Gurrappadi)

    - intel_pstate driver optimizations and cleanups (Rafael Wysocki,
    Philippe Longepe, Chen Yu, Joe Perches)

    - cpufreq powernv driver fixes and cleanups (Akshay Adiga, Shilpasri
    Bhat)

    - cpufreq qoriq driver fixes and cleanups (Jia Hongtao)

    - ACPI cpufreq driver cleanups (Viresh Kumar)

    - Assorted cpufreq driver updates (Ashwin Chaugule, Geliang Tang,
    Javier Martinez Canillas, Paul Gortmaker, Sudeep Holla)

    - Assorted cpufreq fixes and cleanups (Joe Perches, Arnd Bergmann)

    - Fixes and cleanups in the OPP (Operating Performance Points)
    framework, mostly related to OPP sharing, and reorganization of
    OF-dependent code in it (Viresh Kumar, Arnd Bergmann, Sudeep Holla)

    - New "passive" governor for devfreq (for SoC subsystems that will
    rely on someone else for the management of their power resources)
    and consolidation of devfreq support for Exynos platforms, coding
    style and typo fixes for devfreq (Chanwoo Choi, MyungJoo Ham)

    - PM core fixes and cleanups, mostly to make it work better with the
    generic power domains (genpd) framework, and updates for that
    framework (Ulf Hansson, Thierry Reding, Colin Ian King)

    - Intel Broxton support for the intel_idle driver (Len Brown)

    - cpuidle core optimization and fix (Daniel Lezcano, Dave Gerlach)

    - ARM cpuidle cleanups (Jisheng Zhang)

    - Intel Kabylake support for the RAPL power capping driver (Jacob
    Pan)

    - AVS (Adaptive Voltage Switching) rockchip-io driver update (Heiko
    Stuebner)

    - Updates for the cpupower tool (Arjun Sreedharan, Colin Ian King,
    Mattia Dongili, Thomas Renninger)"

    * tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (112 commits)
    intel_pstate: Clean up get_target_pstate_use_performance()
    intel_pstate: Use sample.core_avg_perf in get_avg_pstate()
    intel_pstate: Clarify average performance computation
    intel_pstate: Avoid unnecessary synchronize_sched() during initialization
    cpufreq: schedutil: Make default depend on CONFIG_SMP
    cpufreq: powernv: del_timer_sync when global and local pstate are equal
    cpufreq: powernv: Move smp_call_function_any() out of irq safe block
    intel_pstate: Clean up intel_pstate_get()
    cpufreq: schedutil: Make it depend on CONFIG_SMP
    cpufreq: governor: Fix handling of special cases in dbs_update()
    PM / OPP: Move CONFIG_OF dependent code in a separate file
    cpufreq: intel_pstate: Ignore _PPC processing under HWP
    cpufreq: arm_big_little: use generic OPP functions for {init, free}_opp_table
    PM / OPP: add non-OF versions of dev_pm_opp_{cpumask_, }remove_table
    cpufreq: tango: Use generic platdev driver
    PM / OPP: pass cpumask by reference
    cpufreq: Fix GOV_LIMITS handling for the userspace governor
    cpupower: fix potential memory leak
    PM / devfreq: style/typo fixes
    PM / devfreq: exynos: Add the detailed correlation for Exynos5422 bus
    ..

    Linus Torvalds
     
  • Pull MMC updates from Ulf Hansson:
    "MMC core:
    - Add TRACE support to be able to debug request flow
    - Extend/improve reset support for (e)MMC
    - Convert MMC pwrseq to platform device drivers
    - Use IDA for indexes
    - Some additional minor improvements

    MMC host:
    - sdhci: Re-factoring, clean-ups and improvements
    - sdhci-acpi|pci: Use MMC_CAP_AGGRESSIVE_PM for Broxton
    - omap/omap_hsmmc: Convert to use dma_request_chan()
    - usdhi6rol0: Add support for UHS modes
    - sh_mmcif: Update runtime PM support
    - tmio: Wolfram Sang steps in as maintainer
    - tmio: Add UHS-I mode support
    - sh_mobile_sdhi: Add UHS-I mode support
    - tmio/sdhi: Re-factoring, clean-ups and improvements
    - dw_mmc: Re-factoring and clean-ups
    - davinci: Convert to use dma_request_chan()"

    * tag 'mmc-v4.7' of git://git.linaro.org/people/ulf.hansson/mmc: (99 commits)
    mmc: mmc: Fix partition switch timeout for some eMMCs
    mmc: sh_mobile_sdhi: enable SDIO IRQs for RCar Gen3
    mmc: sdio: fall back to SDIO 1.0 for broken 1.1 cards
    mmc: sdhci-st: correct name of sd-uhs-sdr50 property
    MAINTAINERS: update entry for TMIO MMC driver
    mmc: block: improve logging of handling emmc timeouts
    mmc: sdhci: removed unneeded function wrappers
    mmc: core: remove the invalid message in mmc_select_timing
    mmc: core: fix using wrong io voltage if mmc_select_hs200 fails
    mmc: sdhci-of-arasan: fix set_clock when a phy is supported
    mmc: omap: Use dma_request_chan() for requesting DMA channel
    mmc: mmc: Attempt to flush cache before reset
    mmc: sh_mobile_sdhi: check return value when changing clk
    mmc: sh_mobile_sdhi: only change the clock on RCar Gen2+
    mmc: tmio/sdhi: introduce flag for RCar 2+ specific features
    mmc: sh_mobile_sdhi: make clk_update function more compact
    mmc: omap_hsmmc: Use dma_request_chan() for requesting DMA channel
    mmc: sdhci-of-at91: add presets setup
    mmc: usdhi6rol0: add pinctrl to set pin drive strength
    mmc: usdhi6rol0: add support for UHS modes
    ...

    Linus Torvalds
     
  • Pull EDAC updates from Borislav Petkov:
    "It was pretty busy in EDAC land this time:

    - Altera Arria10 L2 cache and On-Chip RAM ECC handling (Thor Thayer)

    - Remove ad-hoc buffering of MCE records in sb_edac and i7core_edac
    (Tony Luck)

    - Do not register sb_edac with pci_register_driver() (Tony Luck)

    - Add support for Skylake to ie31200_edac (Jason Baron)

    - Do not register amd64_edac with pci_register_driver() (Borislav
    Petkov)

    ... plus the usual round of cleanups and fixes all over the place"

    * tag 'edac_for_4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (25 commits)
    EDAC, amd64_edac: Drop pci_register_driver() use
    EDAC, ie31200_edac: Add Skylake support
    EDAC, sb_edac: Use cpu family/model in driver detection
    EDAC, i7core: Remove double buffering of error records
    EDAC, amd64_edac: Issue driver banner only on success
    ARM: socfpga: Initialize Arria10 OCRAM ECC on startup
    EDAC: Increment correct counter in edac_inc_ue_error()
    EDAC, sb_edac: Remove double buffering of error records
    EDAC: Fix used after kfree() error in edac_unregister_sysfs()
    EDAC, altera: Avoid unused function warnings
    EDAC, altera: Remove useless casts
    ARM: socfpga: Enable Arria10 OCRAM ECC on startup
    EDAC, altera: Add Arria10 OCRAM ECC support
    Documentation: dt: socfpga: Add Altera Arria10 OCRAM binding
    EDAC, altera: Make OCRAM ECC dependency check generic
    EDAC, altera: Add register offset for ECC Enable
    EDAC, altera: Extract error inject operations to a struct fops
    ARM: socfpga: Enable Arria10 L2 cache ECC on startup
    EDAC, altera: Add Arria10 L2 Cache ECC handling
    Documentation, dt, socfpga: Add Altera Arria10 L2 cache binding
    ...

    Linus Torvalds
     
  • Pull arm64 perf updates from Will Deacon:
    "The main addition here is support for Broadcom's Vulcan core using the
    architected ID registers for discovering supported events.

    - Support for the PMU in Broadcom's Vulcan CPU

    - Dynamic event detection using the PMCEIDn_EL0 ID registers"

    * tag 'arm64-perf' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: perf: don't expose CHAIN event in sysfs
    arm64/perf: Add Broadcom Vulcan PMU support
    arm64/perf: Filter common events based on PMCEIDn_EL0
    arm64/perf: Access pmu register using _sys_reg
    arm64/perf: Define complete ARMv8 recommended implementation defined events
    arm64/perf: Changed events naming as per the ARM ARM
    arm64: dts: Add Broadcom Vulcan PMU in dts
    Documentation: arm64: pmu: Add Broadcom Vulcan PMU binding

    Linus Torvalds
     
  • Pull arm64 updates from Will Deacon:

    - virt_to_page/page_address optimisations

    - support for NUMA systems described using device-tree

    - support for hibernate/suspend-to-disk

    - proper support for maxcpus= command line parameter

    - detection and graceful handling of AArch64-only CPUs

    - miscellaneous cleanups and non-critical fixes

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits)
    arm64: do not enforce strict 16 byte alignment to stack pointer
    arm64: kernel: Fix incorrect brk randomization
    arm64: cpuinfo: Missing NULL terminator in compat_hwcap_str
    arm64: secondary_start_kernel: Remove unnecessary barrier
    arm64: Ensure pmd_present() returns false after pmd_mknotpresent()
    arm64: Replace hard-coded values in the pmd/pud_bad() macros
    arm64: Implement pmdp_set_access_flags() for hardware AF/DBM
    arm64: Fix typo in the pmdp_huge_get_and_clear() definition
    arm64: mm: remove unnecessary EXPORT_SYMBOL_GPL
    arm64: always use STRICT_MM_TYPECHECKS
    arm64: kvm: Fix kvm teardown for systems using the extended idmap
    arm64: kaslr: increase randomization granularity
    arm64: kconfig: drop CONFIG_RTC_LIB dependency
    arm64: make ARCH_SUPPORTS_DEBUG_PAGEALLOC depend on !HIBERNATION
    arm64: hibernate: Refuse to hibernate if the boot cpu is offline
    arm64: kernel: Add support for hibernate/suspend-to-disk
    PM / Hibernate: Call flush_icache_range() on pages restored in-place
    arm64: Add new asm macro copy_page
    arm64: Promote KERNEL_START/KERNEL_END definitions to a header file
    arm64: kernel: Include _AC definition in page.h
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:
    "Preparatory work for Arnd's genrtc removal series"

    * tag 'm68k-for-v4.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/mvme16x: Include generic
    m68k/bvme6000: Include generic

    Linus Torvalds
     
  • Pull metag architecture updates from James Hogan:
    "Three minor fixes:

    - removal of stale comment
    - fix build for Meta1 when perf events are enabled
    - fix inline asm constraint in atomics"

    * tag 'metag-for-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
    metag: Fix atomic_*_return inline asm constraints
    metag: perf: fix build on Meta1
    metag: ftrace: remove the misleading comment for ftrace_dyn_arch_init

    Linus Torvalds
     
  • Pull x86 platform updates from Ingo Molnar:
    "The main change is the addition of SGI/UV4 support"

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
    x86/platform/UV: Fix incorrect nodes and pnodes for cpuless and memoryless nodes
    x86/platform/UV: Remove Obsolete GRU MMR address translation
    x86/platform/UV: Update physical address conversions for UV4
    x86/platform/UV: Build GAM reference tables
    x86/platform/UV: Support UV4 socket address changes
    x86/platform/UV: Add obtaining GAM Range Table from UV BIOS
    x86/platform/UV: Add UV4 addressing discovery function
    x86/platform/UV: Fold blade info into per node hub info structs
    x86/platform/UV: Allocate common per node hub info structs on local node
    x86/platform/UV: Move blade local processor ID to the per cpu info struct
    x86/platform/UV: Move scir info to the per cpu info struct
    x86/platform/UV: Create per cpu info structs to replace per hub info structs
    x86/platform/UV: Update MMIOH setup function to work for both UV3 and UV4
    x86/platform/UV: Clean up redunduncies after merge of UV4 MMR definitions
    x86/platform/UV: Add UV4 Specific MMR definitions
    x86/platform/UV: Prep for UV4 MMR updates
    x86/platform/UV: Add UV MMR Illegal Access Function
    x86/platform/UV: Add UV4 Specific Defines
    x86/platform/UV: Add UV Architecture Defines
    x86/platform/UV: Add Initial UV4 definitions
    ...

    Linus Torvalds
     
  • Pull x86 debug cleanup from Ingo Molnar:
    "A printk() output simplification"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/dumpstack: Combine some printk()s

    Linus Torvalds
     
  • Pull x86 cleanup from Ingo Molnar:
    "Inline optimizations"

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Fix non-static inlines

    Linus Torvalds
     
  • Pull x86-64 defconfig update from Ingo Molnar:
    "Small defconfig addition"

    [ I'm not actually convinced our defconfig is sensible, but whatever ]

    * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/build/defconfig/64: Enable CONFIG_E1000E=y

    Linus Torvalds
     
  • Pull x86 boot updates from Ingo Molnar:
    "The biggest changes in this cycle were:

    - prepare for more KASLR related changes, by restructuring, cleaning
    up and fixing the existing boot code. (Kees Cook, Baoquan He,
    Yinghai Lu)

    - simplifly/concentrate subarch handling code, eliminate
    paravirt_enabled() usage. (Luis R Rodriguez)"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)
    x86/KASLR: Clarify purpose of each get_random_long()
    x86/KASLR: Add virtual address choosing function
    x86/KASLR: Return earliest overlap when avoiding regions
    x86/KASLR: Add 'struct slot_area' to manage random_addr slots
    x86/boot: Add missing file header comments
    x86/KASLR: Initialize mapping_info every time
    x86/boot: Comment what finalize_identity_maps() does
    x86/KASLR: Build identity mappings on demand
    x86/boot: Split out kernel_ident_mapping_init()
    x86/boot: Clean up indenting for asm/boot.h
    x86/KASLR: Improve comments around the mem_avoid[] logic
    x86/boot: Simplify pointer casting in choose_random_location()
    x86/KASLR: Consolidate mem_avoid[] entries
    x86/boot: Clean up pointer casting
    x86/boot: Warn on future overlapping memcpy() use
    x86/boot: Extract error reporting functions
    x86/boot: Correctly bounds-check relocations
    x86/KASLR: Clean up unused code from old 'run_size' and rename it to 'kernel_total_size'
    x86/boot: Fix "run_size" calculation
    x86/boot: Calculate decompression size during boot not build
    ...

    Linus Torvalds
     
  • Pull x86 asm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - MSR access API fixes and enhancements (Andy Lutomirski)

    - early exception handling improvements (Andy Lutomirski)

    - user-space FS/GS prctl usage fixes and improvements (Andy
    Lutomirski)

    - Remove the cpu_has_*() APIs and replace them with equivalents
    (Borislav Petkov)

    - task switch micro-optimization (Brian Gerst)

    - 32-bit entry code simplification (Denys Vlasenko)

    - enhance PAT handling in enumated CPUs (Toshi Kani)

    ... and lots of other cleanups/fixlets"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
    x86/arch_prctl/64: Restore accidentally removed put_cpu() in ARCH_SET_GS
    x86/entry/32: Remove asmlinkage_protect()
    x86/entry/32: Remove GET_THREAD_INFO() from entry code
    x86/entry, sched/x86: Don't save/restore EFLAGS on task switch
    x86/asm/entry/32: Simplify pushes of zeroed pt_regs->REGs
    selftests/x86/ldt_gdt: Test set_thread_area() deletion of an active segment
    x86/tls: Synchronize segment registers in set_thread_area()
    x86/asm/64: Rename thread_struct's fs and gs to fsbase and gsbase
    x86/arch_prctl/64: Remove FSBASE/GSBASE < 4G optimization
    x86/segments/64: When load_gs_index fails, clear the base
    x86/segments/64: When loadsegment(fs, ...) fails, clear the base
    x86/asm: Make asm/alternative.h safe from assembly
    x86/asm: Stop depending on ptrace.h in alternative.h
    x86/entry: Rename is_{ia32,x32}_task() to in_{ia32,x32}_syscall()
    x86/asm: Make sure verify_cpu() has a good stack
    x86/extable: Add a comment about early exception handlers
    x86/msr: Set the return value to zero when native_rdmsr_safe() fails
    x86/paravirt: Make "unsafe" MSR accesses unsafe even if PARAVIRT=y
    x86/paravirt: Add paravirt_{read,write}_msr()
    x86/msr: Carry on after a non-"safe" MSR access fails
    ...

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:

    - massive CPU hotplug rework (Thomas Gleixner)

    - improve migration fairness (Peter Zijlstra)

    - CPU load calculation updates/cleanups (Yuyang Du)

    - cpufreq updates (Steve Muckle)

    - nohz optimizations (Frederic Weisbecker)

    - switch_mm() micro-optimization on x86 (Andy Lutomirski)

    - ... lots of other enhancements, fixes and cleanups.

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits)
    ARM: Hide finish_arch_post_lock_switch() from modules
    sched/core: Provide a tsk_nr_cpus_allowed() helper
    sched/core: Use tsk_cpus_allowed() instead of accessing ->cpus_allowed
    sched/loadavg: Fix loadavg artifacts on fully idle and on fully loaded systems
    sched/fair: Correct unit of load_above_capacity
    sched/fair: Clean up scale confusion
    sched/nohz: Fix affine unpinned timers mess
    sched/fair: Fix fairness issue on migration
    sched/core: Kill sched_class::task_waking to clean up the migration logic
    sched/fair: Prepare to fix fairness problems on migration
    sched/fair: Move record_wakee()
    sched/core: Fix comment typo in wake_q_add()
    sched/core: Remove unused variable
    sched: Make hrtick_notifier an explicit call
    sched/fair: Make ilb_notifier an explicit call
    sched/hotplug: Make activate() the last hotplug step
    sched/hotplug: Move migration CPU_DYING to sched_cpu_dying()
    sched/migration: Move CPU_ONLINE into scheduler state
    sched/migration: Move calc_load_migrate() into CPU_DYING
    sched/migration: Move prepare transition to SCHED_STARTING state
    ...

    Linus Torvalds
     
  • Pull RAS updates from Ingo Molnar:
    "Main changes in this cycle were:

    - AMD MCE/RAS handling updates (Yazen Ghannam, Aravind
    Gopalakrishnan)

    - Cleanups (Borislav Petkov)

    - logging fix (Tony Luck)"

    * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/RAS: Add SMCA support to AMD Error Injector
    EDAC, mce_amd: Detect SMCA using X86_FEATURE_SMCA
    x86/mce: Update AMD mcheck init to use cpu_has() facilities
    x86/cpu: Add detection of AMD RAS Capabilities
    x86/mce/AMD: Save an indentation level in prepare_threshold_block()
    x86/mce/AMD: Disable LogDeferredInMcaStat for SMCA systems
    x86/mce/AMD: Log Deferred Errors using SMCA MCA_DE{STAT,ADDR} registers
    x86/mce: Detect local MCEs properly
    x86/mce: Look in genpool instead of mcelog for pending error records
    x86/mce: Detect and use SMCA-specific msr_ops
    x86/mce: Define vendor-specific MSR accessors
    x86/mce: Carve out writes to MCx_STATUS and MCx_CTL
    x86/mce: Grade uncorrected errors for SMCA-enabled systems
    x86/mce: Log MCEs after a warm rest on AMD, Fam17h and later
    x86/mce: Remove explicit smp_rmb() when starting CPUs sync
    x86/RAS: Rename AMD MCE injector config item

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Bigger kernel side changes:

    - Add backwards writing capability to the perf ring-buffer code,
    which is preparation for future advanced features like robust
    'overwrite support' and snapshot mode. (Wang Nan)

    - Add pause and resume ioctls for the perf ringbuffer (Wang Nan)

    - x86 Intel cstate code cleanups and reorgnization (Thomas Gleixner)

    - x86 Intel uncore and CPU PMU driver updates (Kan Liang, Peter
    Zijlstra)

    - x86 AUX (Intel PT) related enhancements and updates (Alexander
    Shishkin)

    - x86 MSR PMU driver enhancements and updates (Huang Rui)

    - ... and lots of other changes spread out over 40+ commits.

    Biggest tooling side changes:

    - 'perf trace' features and enhancements. (Arnaldo Carvalho de Melo)

    - BPF tooling updates (Wang Nan)

    - 'perf sched' updates (Jiri Olsa)

    - 'perf probe' updates (Masami Hiramatsu)

    - ... plus 200+ other enhancements, fixes and cleanups to tools/

    The merge commits, the shortlog and the changelogs contain a lot more
    details"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (249 commits)
    perf/core: Disable the event on a truncated AUX record
    perf/x86/intel/pt: Generate PMI in the STOP region as well
    perf buildid-cache: Use lsdir() for looking up buildid caches
    perf symbols: Use lsdir() for the search in kcore cache directory
    perf tools: Use SBUILD_ID_SIZE where applicable
    perf tools: Fix lsdir to set errno correctly
    perf trace: Move seccomp args beautifiers to tools/perf/trace/beauty/
    perf trace: Move flock op beautifier to tools/perf/trace/beauty/
    perf build: Add build-test for debug-frame on arm/arm64
    perf build: Add build-test for libunwind cross-platforms support
    perf script: Fix export of callchains with recursion in db-export
    perf script: Fix callchain addresses in db-export
    perf script: Fix symbol insertion behavior in db-export
    perf symbols: Add dso__insert_symbol function
    perf scripting python: Use Py_FatalError instead of die()
    perf tools: Remove xrealloc and ALLOC_GROW
    perf help: Do not use ALLOC_GROW in add_cmd_list
    perf pmu: Make pmu_formats_string to check return value of strbuf
    perf header: Make topology checkers to check return value of strbuf
    perf tools: Make alias handler to check return value of strbuf
    ...

    Linus Torvalds
     
  • Pull support for killable rwsems from Ingo Molnar:
    "This, by Michal Hocko, implements down_write_killable().

    The main usecase will be to update mm_sem usage sites to use this new
    API, to allow the mm-reaper introduced in commit aac453635549 ("mm,
    oom: introduce oom reaper") to tear down oom victim address spaces
    asynchronously with minimum latencies and without deadlock worries"

    [ The vfs will want it too as the inode lock is changed from a mutex to
    a rwsem due to the parallel lookup and readdir updates ]

    * 'locking-rwsem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/rwsem: Fix comment on register clobbering
    locking/rwsem: Fix down_write_killable()
    locking/rwsem, x86: Add frame annotation for call_rwsem_down_write_failed_killable()
    locking/rwsem: Provide down_write_killable()
    locking/rwsem, x86: Provide __down_write_killable()
    locking/rwsem, s390: Provide __down_write_killable()
    locking/rwsem, ia64: Provide __down_write_killable()
    locking/rwsem, alpha: Provide __down_write_killable()
    locking/rwsem: Introduce basis for down_write_killable()
    locking/rwsem, sparc: Drop superfluous arch specific implementation
    locking/rwsem, sh: Drop superfluous arch specific implementation
    locking/rwsem, xtensa: Drop superfluous arch specific implementation
    locking/rwsem: Drop explicit memory barriers
    locking/rwsem: Get rid of __down_write_nested()

    Linus Torvalds