27 Jul, 2016

22 commits

  • Pull power supply and reset updates from Sebastian Reichel:
    - introduce reboot mode driver
    - add DT support to max8903
    - add power supply support for axp221
    - misc fixes

    * tag 'for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
    power: reset: add reboot mode driver
    dt-bindings: power: reset: add document for reboot-mode driver
    power_supply: fix return value of get_property
    power: qcom_smbb: Make an extcon for usb cable detection
    max8903: adds support for initiation via device tree
    max8903: adds documentation for device tree bindings.
    max8903: remove unnecessary 'out of memory' error message.
    max8903: removes non zero validity checks on gpios.
    max8903: adds requesting of gpios.
    max8903: cleans up confusing relationship between dc_valid, dok and dcm.
    max8903: store pointer to pdata instead of copying it.
    power_supply: bq27xxx_battery: Group register mappings into one table
    docs: Move brcm,bcm21664-resetmgr.txt
    power/reset: make syscon_poweroff() static
    power: axp20x_usb: Add support for usb power-supply on axp22x pmics
    power_supply: bq27xxx_battery: Index register numbers by enum
    power_supply: bq27xxx_battery: Fix copy/paste error in header comment
    MAINTAINERS: Add file patterns for power supply device tree bindings
    power: reset: keystone: Enable COMPILE_TEST

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "A quiet regulator API release, a few new drivers and some fixes but
    nothing too notable. There will also be some updates for the PWM
    regulator coming through the PWM tree which provide much smoother
    operation when taking over an already running PWM regulator after boot
    using some new PWM APIs.

    Summary:

    - Support for configuration of the initial suspend state from DT.

    - New drivers for Mediatek MT6323, Ricoh RN5T567 and X-Powers AXP809"

    * tag 'regulator-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (38 commits)
    regulator: da9053/52: Fix incorrectly stated minimum and maximum voltage limits
    regulator: mt6323: Constify struct regulator_ops
    regulator: mt6323: Fix module description
    regulator: mt6323: Add support for MT6323 regulator
    regulator: Add document for MT6323 regulator
    regulator: da9210: addition of device tree support
    regulator: act8865: Fix missing of_node_put() in act8865_pdata_from_dt()
    regulator: qcom_smd: Avoid overlapping linear voltage ranges
    regulator: s2mps11: Fix the voltage linear range for s2mps15
    regulator: pwm: Fix regulator ramp delay for continuous mode
    regulator: da9211: add descriptions for da9212/da9214
    mfd: rn5t618: Register restart handler
    mfd: rn5t618: Register power off callback optionally
    regulator: rn5t618: Add RN5T567 PMIC support
    mfd: rn5t618: Add Ricoh RN5T567 PMIC support
    ARM: dts: meson: minix-neo-x8: define PMIC as power controller
    regulator: tps65218: force set power-up/down strobe to 3 for dcdc3
    regulator: tps65218: Enable suspend configuration
    regulator: tps65217: Enable suspend configuration
    regulator: qcom_spmi: Add support for get_mode/set_mode on switches
    ...

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "Several small updates and API enhancements:

    - provide transparent unrolling of bulk writes into individual writes
    so they can be used with devices without raw formatting.

    - fix compatibility between I2C controllers supporting block commands
    and devices with more than 8 bit wide registers.

    - add some helpers for iopoll-like functionality and workarounds for
    weird interrupt controllers"

    * tag 'regmap-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: add iopoll-like polling macro
    regmap: Support bulk writes for devices without raw formatting
    regmap-i2c: Use i2c block command only if register value width is 8 bit
    regmap: irq: Add support to call client specific pre/post interrupt service
    regmap: Add file patterns for regmap device tree bindings

    Linus Torvalds
     
  • Pull GPIO updates from Linus Walleij:
    "This is the bulk of GPIO changes for the v4.8 kernel cycle. The big
    news is the completion of the chardev ABI which I'm very happy about
    and apart from that it's an ordinary, quite busy cycle. The details
    are below.

    The patches are tested in linux-next for some time, patches to other
    subsystem mostly have ACKs.

    I got overly ambitious with configureing lines as input for IRQ lines
    but it turns out that some controllers have their interrupt-enable and
    input-enabling in orthogonal settings so the assumption that all IRQ
    lines are input lines does not hold. Oh well, revert and back to the
    drawing board with that.

    Core changes:

    - The big item is of course the completion of the character device
    ABI. It has now replaced and surpassed the former unmaintainable
    sysfs ABI: we can now hammer (bitbang) individual lines or sets of
    lines and read individual lines or sets of lines from userspace,
    and we can also register to listen to GPIO events from userspace.

    As a tie-in we have two new tools in tools/gpio: gpio-hammer and
    gpio-event-mon that illustrate the proper use of the new ABI. As
    someone said: the wild west days of GPIO are now over.

    - Continued to remove the pointless ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB
    Kconfig symbols. I'm patching hexagon, openrisc, powerpc, sh,
    unicore, ia64 and microblaze. These are either ACKed by their
    maintainers or patched anyways after a grace period and no response
    from maintainers.

    Some archs (ARM) come in from their trees, and others (x86) are
    still not fixed, so I might send a second pull request to root it
    out later in this merge window, or just defer to v4.9.

    - The GPIO tools are moved to the tools build system.

    New drivers:

    - New driver for the MAX77620/MAX20024.

    - New driver for the Intel Merrifield.

    - Enabled PCA953x for the TI PCA9536.

    - Enabled PCA953x for the Intel Edison.

    - Enabled R8A7792 in the RCAR driver.

    Driver improvements:

    - The STMPE and F7188x now supports the .get_direction() callback.

    - The Xilinx driver supports setting multiple lines at once.

    - ACPI support for the Vulcan GPIO controller.

    - The MMIO GPIO driver supports device tree probing.

    - The Acer One 10 is supported through the _DEP ACPI attribute.

    Cleanups:

    - A major cleanup of the OF/DT support code. It is way easier to
    read and understand now, probably this improves performance too.

    - Drop a few redundant .owner assignments.

    - Remove CLPS711x boardfile support: we are 100% DT"

    * tag 'gpio-v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (67 commits)
    MAINTAINERS: Add INTEL MERRIFIELD GPIO entry
    gpio: dwapb: add missing fwnode_handle_put() in dwapb_gpio_get_pdata()
    gpio: merrifield: Protect irq_ack() and gpio_set() by lock
    gpio: merrifield: Introduce GPIO driver to support Merrifield
    gpio: intel-mid: Make it depend to X86_INTEL_MID
    gpio: intel-mid: Sort header block alphabetically
    gpio: intel-mid: Remove potentially harmful code
    gpio: rcar: add R8A7792 support
    gpiolib: remove duplicated include from gpiolib.c
    Revert "gpio: convince line to become input in irq helper"
    gpiolib: of_find_gpio(): Don't discard errors
    gpio: of: Allow overriding the device node
    gpio: free handles in fringe cases
    gpio: tps65218: Add platform_device_id table
    gpio: max77620: get gpio value based on direction
    gpio: lynxpoint: avoid potential warning on error path
    tools/gpio: add install section
    tools/gpio: move to tools buildsystem
    gpio: intel-mid: switch to devm_gpiochip_add_data()
    gpio: 74x164: Use spi_write() helper instead of open coding
    ...

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:

    - new framework support for HDMI CEC and remote control support

    - new encoding codec driver for Mediatek SoC

    - new frontend driver: helene tuner

    - added support for NetUp almost universal devices, with supports
    DVB-C/S/S2/T/T2 and ISDB-T

    - the mn88472 frontend driver got promoted from staging

    - a new driver for RCar video input

    - some soc_camera legacy drivers got removed: timb, omap1, mx2, mx3

    - lots of driver cleanups, improvements and fixups

    * tag 'media/v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (377 commits)
    [media] cec: always check all_device_types and features
    [media] cec: poll should check if there is room in the tx queue
    [media] vivid: support monitor all mode
    [media] cec: fix test for unconfigured adapter in main message loop
    [media] cec: limit the size of the transmit queue
    [media] cec: zero unused msg part after msg->len
    [media] cec: don't set fh to NULL in CEC_TRANSMIT
    [media] cec: clear all status fields before transmit and always fill in sequence
    [media] cec: CEC_RECEIVE overwrote the timeout field
    [media] cxd2841er: Reading SNR for DVB-C added
    [media] cxd2841er: Reading BER and UCB for DVB-C added
    [media] cxd2841er: fix switch-case for DVB-C
    [media] cxd2841er: fix signal strength scale for ISDB-T
    [media] cxd2841er: adjust the dB scale for DVB-C
    [media] cxd2841er: provide signal strength for DVB-C
    [media] cxd2841er: fix BER report via DVBv5 stats API
    [media] mb86a20s: apply mask to val after checking for read failure
    [media] airspy: fix error logic during device register
    [media] s5p-cec/TODO: add TODO item
    [media] cec/TODO: drop comment about sphinx documentation
    ...

    Linus Torvalds
     
  • Pull pstore subsystem updates from Kees Cook:
    "This expands the supported compressors, fixes some bugs, and finally
    adds DT bindings"

    * tag 'pstore-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    pstore/ram: add Device Tree bindings
    efi-pstore: implement efivars_pstore_exit()
    pstore: drop file opened reference count
    pstore: add lzo/lz4 compression support
    pstore: Cleanup pstore_dump()
    pstore: Enable compression on normal path (again)
    ramoops: Only unregister when registered

    Linus Torvalds
     
  • Pull orangefs updates from Mike Mashall:
    "Orangefs cleanups and enablement of O_DIRECT in open.

    Cleanups:

    - remove some unused defines, and also some obfuscatory ones.

    - remove a redundant xattr handler.

    - Remove useless xattr prefix arguments.

    - Be more picky about uid and gid handling WRT namespaces.

    Our use of current_user_ns() instead of init_user_ns left open the
    possibility that users could spoof their uids or gids when the
    server was running in a different namespace in "default security"
    mode.

    - Allow open(2) to succeed with O_DIRECT"

    * tag 'for-linus-4.8-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
    orangefs: fix namespace handling
    Orangefs: allow O_DIRECT in open
    orangefs: Remove useless xattr prefix arguments
    orangefs: Remove redundant "trusted." xattr handler
    orangefs: Remove useless defines

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "The major change this cycle is deleting ext4's copy of the file system
    encryption code and switching things over to using the copies in
    fs/crypto. I've updated the MAINTAINERS file to add an entry for
    fs/crypto listing Jaeguk Kim and myself as the maintainers.

    There are also a number of bug fixes, most notably for some problems
    found by American Fuzzy Lop (AFL) courtesy of Vegard Nossum. Also
    fixed is a writeback deadlock detected by generic/130, and some
    potential races in the metadata checksum code"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (21 commits)
    ext4: verify extent header depth
    ext4: short-cut orphan cleanup on error
    ext4: fix reference counting bug on block allocation error
    MAINTAINRES: fs-crypto maintainers update
    ext4 crypto: migrate into vfs's crypto engine
    ext2: fix filesystem deadlock while reading corrupted xattr block
    ext4: fix project quota accounting without quota limits enabled
    ext4: validate s_reserved_gdt_blocks on mount
    ext4: remove unused page_idx
    ext4: don't call ext4_should_journal_data() on the journal inode
    ext4: Fix WARN_ON_ONCE in ext4_commit_super()
    ext4: fix deadlock during page writeback
    ext4: correct error value of function verifying dx checksum
    ext4: avoid modifying checksum fields directly during checksum verification
    ext4: check for extents that wrap around
    jbd2: make journal y2038 safe
    jbd2: track more dependencies on transaction commit
    jbd2: move lockdep tracking to journal_s
    jbd2: move lockdep instrumentation for jbd2 handles
    ext4: respect the nobarrier mount option in nojournal mode
    ...

    Linus Torvalds
     
  • Pull PNP update from Rafael Wysocki:
    "One simple change to make the PNP core use device_initcall() instead
    of module_init() to run pnpbios_thread_init() (Paul Gortmaker)"

    * tag 'pnp-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PNP: make pnpbios core explicitly non-modular

    Linus Torvalds
     
  • Pull ACPI updates from Rafael Wysocki:
    "The new feaures here are the support for ACPI overlays (allowing ACPI
    tables to be loaded at any time from EFI variables or via configfs)
    and the LPI (Low-Power Idle) support. Also notable is the ACPI-based
    NUMA support for ARM64.

    Apart from that we have two new drivers, for the DPTF (Dynamic Power
    and Thermal Framework) power participant device and for the Intel
    Broxton WhiskeyCove PMIC, some more PMIC-related changes, support for
    the Boot Error Record Table (BERT) in APEI and support for
    platform-initiated graceful shutdown.

    Plus two new pieces of documentation and usual assorted fixes and
    cleanups in quite a few places.

    Specifics:

    - Support for ACPI SSDT overlays allowing Secondary System
    Description Tables (SSDTs) to be loaded at any time from EFI
    variables or via configfs (Octavian Purdila, Mika Westerberg).

    - Support for the ACPI LPI (Low-Power Idle) feature introduced in
    ACPI 6.0 and allowing processor idle states to be represented in
    ACPI tables in a hierarchical way (with the help of Processor
    Container objects) and support for ACPI idle states management on
    ARM64, based on LPI (Sudeep Holla).

    - General improvements of ACPI support for NUMA and ARM64 support for
    ACPI-based NUMA (Hanjun Guo, David Daney, Robert Richter).

    - General improvements of the ACPI table upgrade mechanism and ARM64
    support for that feature (Aleksey Makarov, Jon Masters).

    - Support for the Boot Error Record Table (BERT) in APEI and
    improvements of kernel messages printed by the error injection code
    (Huang Ying, Borislav Petkov).

    - New driver for the Intel Broxton WhiskeyCove PMIC operation region
    and support for the REGS operation region on Broxton, PMIC code
    cleanups (Bin Gao, Felipe Balbi, Paul Gortmaker).

    - New driver for the power participant device which is part of the
    Dynamic Power and Thermal Framework (DPTF) and DPTF-related code
    reorganization (Srinivas Pandruvada).

    - Support for the platform-initiated graceful shutdown feature
    introduced in ACPI 6.1 (Prashanth Prakash).

    - ACPI button driver update related to lid input events generated
    automatically on initialization and system resume that have been
    problematic for some time (Lv Zheng).

    - ACPI EC driver cleanups (Lv Zheng).

    - Documentation of the ACPICA release automation process and the
    in-kernel ACPI AML debugger (Lv Zheng).

    - New blacklist entry and two fixes for the ACPI backlight driver
    (Alex Hung, Arvind Yadav, Ralf Gerbig).

    - Cleanups of the ACPI pci_slot driver (Joe Perches, Paul Gortmaker).

    - ACPI CPPC code changes to make it more robust against possible
    defects in ACPI tables and new symbol definitions for PCC (Hoan
    Tran).

    - System reboot code modification to execute the ACPI _PTS (Prepare
    To Sleep) method in addition to _TTS (Ocean He).

    - ACPICA-related change to carry out lock ordering checks in ACPICA
    if ACPICA debug is enabled in the kernel (Lv Zheng).

    - Assorted minor fixes and cleanups (Andy Shevchenko, Baoquan He,
    Bhaktipriya Shridhar, Paul Gortmaker, Rafael Wysocki)"

    * tag 'acpi-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (71 commits)
    ACPI: enable ACPI_PROCESSOR_IDLE on ARM64
    arm64: add support for ACPI Low Power Idle(LPI)
    drivers: firmware: psci: initialise idle states using ACPI LPI
    cpuidle: introduce CPU_PM_CPU_IDLE_ENTER macro for ARM{32, 64}
    arm64: cpuidle: drop __init section marker to arm_cpuidle_init
    ACPI / processor_idle: Add support for Low Power Idle(LPI) states
    ACPI / processor_idle: introduce ACPI_PROCESSOR_CSTATE
    ACPI / DPTF: move int340x_thermal.c to the DPTF folder
    ACPI / DPTF: Add DPTF power participant driver
    ACPI / lpat: make it explicitly non-modular
    ACPI / dock: make dock explicitly non-modular
    ACPI / PCI: make pci_slot explicitly non-modular
    ACPI / PMIC: remove modular references from non-modular code
    ACPICA: Linux: Enable ACPI_MUTEX_DEBUG for Linux kernel
    ACPI: Rename configfs.c to acpi_configfs.c to prevent link error
    ACPI / debugger: Add AML debugger documentation
    ACPI: Add documentation describing ACPICA release automation
    ACPI: add support for loading SSDTs via configfs
    ACPI: add support for configfs
    efi / ACPI: load SSTDs from EFI variables
    ...

    Linus Torvalds
     
  • Pull power management updates from Rafael Wysocki:
    "Again, the majority of changes go into the cpufreq subsystem, but
    there are no big features this time. The cpufreq changes that stand
    out somewhat are the governor interface rework and improvements
    related to the handling of frequency tables. Apart from those, there
    are fixes and new device/CPU IDs in drivers, cleanups and an
    improvement of the new schedutil governor.

    Next, there are some changes in the hibernation core, including a fix
    for a nasty problem related to the MONITOR/MWAIT usage by CPU offline
    during resume from hibernation, a few core improvements related to
    memory management during resume, a couple of additional debug features
    and cleanups.

    Finally, we have some fixes and cleanups in the devfreq subsystem,
    generic power domains framework improvements related to system
    suspend/resume, support for some new chips in intel_idle and in the
    power capping RAPL driver, a new version of the AnalyzeSuspend utility
    and some assorted fixes and cleanups.

    Specifics:

    - Rework the cpufreq governor interface to make it more
    straightforward and modify the conservative governor to avoid using
    transition notifications (Rafael Wysocki).

    - Rework the handling of frequency tables by the cpufreq core to make
    it more efficient (Viresh Kumar).

    - Modify the schedutil governor to reduce the number of wakeups it
    causes to occur in cases when the CPU frequency doesn't need to be
    changed (Steve Muckle, Viresh Kumar).

    - Fix some minor issues and clean up code in the cpufreq core and
    governors (Rafael Wysocki, Viresh Kumar).

    - Add Intel Broxton support to the intel_pstate driver (Srinivas
    Pandruvada).

    - Fix problems related to the config TDP feature and to the validity
    of the MSR_HWP_INTERRUPT register in intel_pstate (Jan Kiszka,
    Srinivas Pandruvada).

    - Make intel_pstate update the cpu_frequency tracepoint even if the
    frequency doesn't change to avoid confusing powertop (Rafael
    Wysocki).

    - Clean up the usage of __init/__initdata in intel_pstate, mark some
    of its internal variables as __read_mostly and drop an unused
    structure element from it (Jisheng Zhang, Carsten Emde).

    - Clean up the usage of some duplicate MSR symbols in intel_pstate
    and turbostat (Srinivas Pandruvada).

    - Update/fix the powernv, s3c24xx and mvebu cpufreq drivers (Akshay
    Adiga, Viresh Kumar, Ben Dooks).

    - Fix a regression (introduced during the 4.5 cycle) in the
    pcc-cpufreq driver by reverting the problematic commit (Andreas
    Herrmann).

    - Add support for Intel Denverton to intel_idle, clean up Broxton
    support in it and make it explicitly non-modular (Jacob Pan, Jan
    Beulich, Paul Gortmaker).

    - Add support for Denverton and Ivy Bridge server to the Intel RAPL
    power capping driver and make it more careful about the handing of
    MSRs that may not be present (Jacob Pan, Xiaolong Wang).

    - Fix resume from hibernation on x86-64 by making the CPU offline
    during resume avoid using MONITOR/MWAIT in the "play dead" loop
    which may lead to an inadvertent "revival" of a "dead" CPU and a
    page fault leading to a kernel crash from it (Rafael Wysocki).

    - Make memory management during resume from hibernation more
    straightforward (Rafael Wysocki).

    - Add debug features that should help to detect problems related to
    hibernation and resume from it (Rafael Wysocki, Chen Yu).

    - Clean up hibernation core somewhat (Rafael Wysocki).

    - Prevent KASAN from instrumenting the hibernation core which leads
    to large numbers of false-positives from it (James Morse).

    - Prevent PM (hibernate and suspend) notifiers from being called
    during the cleanup phase if they have not been called during the
    corresponding preparation phase which is possible if one of the
    other notifiers returns an error at that time (Lianwei Wang).

    - Improve suspend-related debug printout in the tasks freezer and
    clean up suspend-related console handling (Roger Lu, Borislav
    Petkov).

    - Update the AnalyzeSuspend script in the kernel sources to version
    4.2 (Todd Brandt).

    - Modify the generic power domains framework to make it handle system
    suspend/resume better (Ulf Hansson).

    - Make the runtime PM framework avoid resuming devices synchronously
    when user space changes the runtime PM settings for them and
    improve its error reporting (Rafael Wysocki, Linus Walleij).

    - Fix error paths in devfreq drivers (exynos, exynos-ppmu,
    exynos-bus) and in the core, make some devfreq code explicitly
    non-modular and change some of it into tristate (Bartlomiej
    Zolnierkiewicz, Peter Chen, Paul Gortmaker).

    - Add DT support to the generic PM clocks management code and make it
    export some more symbols (Jon Hunter, Paul Gortmaker).

    - Make the PCI PM core code slightly more robust against possible
    driver errors (Andy Shevchenko).

    - Make it possible to change DESTDIR and PREFIX in turbostat (Andy
    Shevchenko)"

    * tag 'pm-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (89 commits)
    Revert "cpufreq: pcc-cpufreq: update default value of cpuinfo_transition_latency"
    PM / hibernate: Introduce test_resume mode for hibernation
    cpufreq: export cpufreq_driver_resolve_freq()
    cpufreq: Disallow ->resolve_freq() for drivers providing ->target_index()
    PCI / PM: check all fields in pci_set_platform_pm()
    cpufreq: acpi-cpufreq: use cached frequency mapping when possible
    cpufreq: schedutil: map raw required frequency to driver frequency
    cpufreq: add cpufreq_driver_resolve_freq()
    cpufreq: intel_pstate: Check cpuid for MSR_HWP_INTERRUPT
    intel_pstate: Update cpu_frequency tracepoint every time
    cpufreq: intel_pstate: clean remnant struct element
    PM / tools: scripts: AnalyzeSuspend v4.2
    x86 / hibernate: Use hlt_play_dead() when resuming from hibernation
    cpufreq: powernv: Replacing pstate_id with frequency table index
    intel_pstate: Fix MSR_CONFIG_TDP_x addressing in core_get_max_pstate()
    PM / hibernate: Image data protection during restoration
    PM / hibernate: Add missing braces in __register_nosave_region()
    PM / hibernate: Clean up comments in snapshot.c
    PM / hibernate: Clean up function headers in snapshot.c
    PM / hibernate: Add missing braces in hibernate_setup()
    ...

    Linus Torvalds
     
  • …linux-platform-drivers-x86

    Pull x8 platform driver updates from Darren Hart:
    "Several new quirks and tweaks for new platforms to existing laptop
    drivers. A new ACPI virtual power button driver, similar to the
    intel-hid driver. A rework of the dell keymap, using a single sparse
    keymap for all machines. A few fixes and cleanups.

    Summary:

    intel-vbtn:
    - new driver for Intel Virtual Button

    intel_pmc_core:
    - Convert to DEFINE_DEBUGFS_ATTRIBUTE

    fujitsu-laptop:
    - Rework brightness of eco led

    asus-wmi:
    - Add quirk_no_rfkill_wapf4 for the Asus X456UA
    - Add quirk_no_rfkill_wapf4 for the Asus X456UF
    - Add quirk_no_rfkill for the Asus Z550MA
    - Add quirk_no_rfkill for the Asus U303LB
    - Add quirk_no_rfkill for the Asus N552VW
    - Create quirk for airplane_mode LED
    - Add ambient light sensor toggle key

    asus-wireless:
    - Toggle airplane mode LED

    intel_telemetry:
    - Remove Monitor MWAIT feature dependency

    intel-hid:
    - Remove duplicated acpi_remove_notify_handler

    fujitsu-laptop:
    - Add support for eco LED
    - Support touchpad toggle hotkey on Skylake-based models
    - Remove unused macros
    - Use module name in debug messages

    hp-wmi:
    - Fix wifi cannot be hard-unblocked

    toshiba_acpi:
    - Bump driver version and update copyright year
    - Remove the position sysfs entry
    - Add IIO interface for accelerometer axis data

    dell-wmi:
    - Add a WMI event code for display on/off
    - Generate one sparse keymap for all machines
    - Add information about other WMI event codes
    - Sort WMI event codes and update comments
    - Ignore WMI event code 0xe045"

    * tag 'platform-drivers-x86-v4.8-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (26 commits)
    intel-vbtn: new driver for Intel Virtual Button
    intel_pmc_core: Convert to DEFINE_DEBUGFS_ATTRIBUTE
    fujitsu-laptop: Rework brightness of eco led
    asus-wmi: Add quirk_no_rfkill_wapf4 for the Asus X456UA
    asus-wmi: Add quirk_no_rfkill_wapf4 for the Asus X456UF
    asus-wmi: Add quirk_no_rfkill for the Asus Z550MA
    asus-wmi: Add quirk_no_rfkill for the Asus U303LB
    asus-wmi: Add quirk_no_rfkill for the Asus N552VW
    asus-wmi: Create quirk for airplane_mode LED
    asus-wireless: Toggle airplane mode LED
    intel_telemetry: Remove Monitor MWAIT feature dependency
    intel-hid: Remove duplicated acpi_remove_notify_handler
    asus-wmi: Add ambient light sensor toggle key
    fujitsu-laptop: Add support for eco LED
    fujitsu-laptop: Support touchpad toggle hotkey on Skylake-based models
    fujitsu-laptop: Remove unused macros
    fujitsu-laptop: Use module name in debug messages
    hp-wmi: Fix wifi cannot be hard-unblocked
    toshiba_acpi: Bump driver version and update copyright year
    toshiba_acpi: Remove the position sysfs entry
    ...

    Linus Torvalds
     
  • Pull device mapper updates from Mike Snitzer:

    - initially based on Jens' 'for-4.8/core' (given all the flag churn)
    and later merged with 'for-4.8/core' to pickup the QUEUE_FLAG_DAX
    commits that DM depends on to provide its DAX support

    - clean up the bio-based vs request-based DM core code by moving the
    request-based DM core code out to dm-rq.[hc]

    - reinstate bio-based support in the DM multipath target (done with the
    idea that fast storage like NVMe over Fabrics could benefit) -- while
    preserving support for request_fn and blk-mq request-based DM mpath

    - SCSI and DM multipath persistent reservation fixes that were
    coordinated with Martin Petersen.

    - the DM raid target saw the most extensive change this cycle; it now
    provides reshape and takeover support (by layering ontop of the
    corresponding MD capabilities)

    - DAX support for DM core and the linear, stripe and error targets

    - a DM thin-provisioning block discard vs allocation race fix that
    addresses potential for corruption

    - a stable fix for DM verity-fec's block calculation during decode

    - a few cleanups and fixes to DM core and various targets

    * tag 'dm-4.8-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (73 commits)
    dm: allow bio-based table to be upgraded to bio-based with DAX support
    dm snap: add fake origin_direct_access
    dm stripe: add DAX support
    dm error: add DAX support
    dm linear: add DAX support
    dm: add infrastructure for DAX support
    dm thin: fix a race condition between discarding and provisioning a block
    dm btree: fix a bug in dm_btree_find_next_single()
    dm raid: fix random optimal_io_size for raid0
    dm raid: address checkpatch.pl complaints
    dm: call PR reserve/unreserve on each underlying device
    sd: don't use the ALL_TG_PT bit for reservations
    dm: fix second blk_delay_queue() parameter to be in msec units not jiffies
    dm raid: change logical functions to actually return bool
    dm raid: use rdev_for_each in status
    dm raid: use rs->raid_disks to avoid memory leaks on free
    dm raid: support delta_disks for raid1, fix table output
    dm raid: enhance reshape check and factor out reshape setup
    dm raid: allow resize during recovery
    dm raid: fix rs_is_recovering() to allow for lvextend
    ...

    Linus Torvalds
     
  • Pull block driver updates from Jens Axboe:
    "This branch also contains core changes. I've come to the conclusion
    that from 4.9 and forward, I'll be doing just a single branch. We
    often have dependencies between core and drivers, and it's hard to
    always split them up appropriately without pulling core into drivers
    when that happens.

    That said, this contains:

    - separate secure erase type for the core block layer, from
    Christoph.

    - set of discard fixes, from Christoph.

    - bio shrinking fixes from Christoph, as a followup up to the
    op/flags change in the core branch.

    - map and append request fixes from Christoph.

    - NVMeF (NVMe over Fabrics) code from Christoph. This is pretty
    exciting!

    - nvme-loop fixes from Arnd.

    - removal of ->driverfs_dev from Dan, after providing a
    device_add_disk() helper.

    - bcache fixes from Bhaktipriya and Yijing.

    - cdrom subchannel read fix from Vchannaiah.

    - set of lightnvm updates from Wenwei, Matias, Johannes, and Javier.

    - set of drbd updates and fixes from Fabian, Lars, and Philipp.

    - mg_disk error path fix from Bart.

    - user notification for failed device add for loop, from Minfei.

    - NVMe in general:
    + NVMe delay quirk from Guilherme.
    + SR-IOV support and command retry limits from Keith.
    + fix for memory-less NUMA node from Masayoshi.
    + use UINT_MAX for discard sectors, from Minfei.
    + cancel IO fixes from Ming.
    + don't allocate unused major, from Neil.
    + error code fixup from Dan.
    + use constants for PSDT/FUSE from James.
    + variable init fix from Jay.
    + fabrics fixes from Ming, Sagi, and Wei.
    + various fixes"

    * 'for-4.8/drivers' of git://git.kernel.dk/linux-block: (115 commits)
    nvme/pci: Provide SR-IOV support
    nvme: initialize variable before logical OR'ing it
    block: unexport various bio mapping helpers
    scsi/osd: open code blk_make_request
    target: stop using blk_make_request
    block: simplify and export blk_rq_append_bio
    block: ensure bios return from blk_get_request are properly initialized
    virtio_blk: use blk_rq_map_kern
    memstick: don't allow REQ_TYPE_BLOCK_PC requests
    block: shrink bio size again
    block: simplify and cleanup bvec pool handling
    block: get rid of bio_rw and READA
    block: don't ignore -EOPNOTSUPP blkdev_issue_write_same
    block: introduce BLKDEV_DISCARD_ZERO to fix zeroout
    NVMe: don't allocate unused nvme_major
    nvme: avoid crashes when node 0 is memoryless node.
    nvme: Limit command retries
    loop: Make user notify for adding loop device failed
    nvme-loop: fix nvme-loop Kconfig dependencies
    nvmet: fix return value check in nvmet_subsys_alloc()
    ...

    Linus Torvalds
     
  • Pull core block updates from Jens Axboe:

    - the big change is the cleanup from Mike Christie, cleaning up our
    uses of command types and modified flags. This is what will throw
    some merge conflicts

    - regression fix for the above for btrfs, from Vincent

    - following up to the above, better packing of struct request from
    Christoph

    - a 2038 fix for blktrace from Arnd

    - a few trivial/spelling fixes from Bart Van Assche

    - a front merge check fix from Damien, which could cause issues on
    SMR drives

    - Atari partition fix from Gabriel

    - convert cfq to highres timers, since jiffies isn't granular enough
    for some devices these days. From Jan and Jeff

    - CFQ priority boost fix idle classes, from me

    - cleanup series from Ming, improving our bio/bvec iteration

    - a direct issue fix for blk-mq from Omar

    - fix for plug merging not involving the IO scheduler, like we do for
    other types of merges. From Tahsin

    - expose DAX type internally and through sysfs. From Toshi and Yigal

    * 'for-4.8/core' of git://git.kernel.dk/linux-block: (76 commits)
    block: Fix front merge check
    block: do not merge requests without consulting with io scheduler
    block: Fix spelling in a source code comment
    block: expose QUEUE_FLAG_DAX in sysfs
    block: add QUEUE_FLAG_DAX for devices to advertise their DAX support
    Btrfs: fix comparison in __btrfs_map_block()
    block: atari: Return early for unsupported sector size
    Doc: block: Fix a typo in queue-sysfs.txt
    cfq-iosched: Charge at least 1 jiffie instead of 1 ns
    cfq-iosched: Fix regression in bonnie++ rewrite performance
    cfq-iosched: Convert slice_resid from u64 to s64
    block: Convert fifo_time from ulong to u64
    blktrace: avoid using timespec
    block/blk-cgroup.c: Declare local symbols static
    block/bio-integrity.c: Add #include "blk.h"
    block/partition-generic.c: Remove a set-but-not-used variable
    block: bio: kill BIO_MAX_SIZE
    cfq-iosched: temporarily boost queue priority for idle classes
    block: drbd: avoid to use BIO_MAX_SIZE
    block: bio: remove BIO_MAX_SECTORS
    ...

    Linus Torvalds
     
  • Pull libata updates from Tejun Heo:
    "libata saw quite a bit of activities in this cycle:

    - SMR drive support still being worked on

    - bug fixes and improvements to misc SCSI command emulation

    - some low level driver updates"

    * 'for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (39 commits)
    libata-scsi: better style in ata_msense_*()
    AHCI: Clear GHC.IS to prevent unexpectly asserting INTx
    ata: sata_dwc_460ex: remove redundant dev_err call
    ata: define ATA_PROT_* in terms of ATA_PROT_FLAG_*
    libata: remove ATA_PROT_FLAG_DATA
    libata: remove ata_is_nodata
    ata: make lba_{28,48}_ok() use ATA_MAX_SECTORS{,_LBA48}
    libata-scsi: minor cleanup for ata_scsi_zbc_out_xlat
    libata-scsi: Fix ZBC management out command translation
    libata-scsi: Fix translation of REPORT ZONES command
    ata: Handle ATA NCQ NO-DATA commands correctly
    libata-eh: decode all taskfile protocols
    ata: fixup ATA_PROT_NODATA
    libsas: use ata_is_ncq() and ata_has_dma() accessors
    libata: use ata_is_ncq() accessors
    libata: return boolean values from ata_is_*
    libata-scsi: avoid repeated calculation of number of TRIM ranges
    libata-scsi: reject WRITE SAME (16) with n_block that exceeds limit
    libata-scsi: rename ata_msense_ctl_mode() to ata_msense_control()
    libata-scsi: fix D_SENSE bit relection in control mode page
    ...

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:
    "Nothing too exciting.

    - updates to the pids controller so that pid limit breaches can be
    noticed and monitored from userland.

    - cleanups and non-critical bug fixes"

    * 'for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: remove duplicated include from cgroup.c
    cgroup: Use lld instead of ld when printing pids controller events_limit
    cgroup: Add pids controller event when fork fails because of pid limit
    cgroup: allow NULL return from ss->css_alloc()
    cgroup: remove unnecessary 0 check from css_from_id()
    cgroup: fix idr leak for the first cgroup root

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "Here is the crypto update for 4.8:

    API:
    - first part of skcipher low-level conversions
    - add KPP (Key-agreement Protocol Primitives) interface.

    Algorithms:
    - fix IPsec/cryptd reordering issues that affects aesni
    - RSA no longer does explicit leading zero removal
    - add SHA3
    - add DH
    - add ECDH
    - improve DRBG performance by not doing CTR by hand

    Drivers:
    - add x86 AVX2 multibuffer SHA256/512
    - add POWER8 optimised crc32c
    - add xts support to vmx
    - add DH support to qat
    - add RSA support to caam
    - add Layerscape support to caam
    - add SEC1 AEAD support to talitos
    - improve performance by chaining requests in marvell/cesa
    - add support for Araneus Alea I USB RNG
    - add support for Broadcom BCM5301 RNG
    - add support for Amlogic Meson RNG
    - add support Broadcom NSP SoC RNG"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (180 commits)
    crypto: vmx - Fix aes_p8_xts_decrypt build failure
    crypto: vmx - Ignore generated files
    crypto: vmx - Adding support for XTS
    crypto: vmx - Adding asm subroutines for XTS
    crypto: skcipher - add comment for skcipher_alg->base
    crypto: testmgr - Print akcipher algorithm name
    crypto: marvell - Fix wrong flag used for GFP in mv_cesa_dma_add_iv_op
    crypto: nx - off by one bug in nx_of_update_msc()
    crypto: rsa-pkcs1pad - fix rsa-pkcs1pad request struct
    crypto: scatterwalk - Inline start/map/done
    crypto: scatterwalk - Remove unnecessary BUG in scatterwalk_start
    crypto: scatterwalk - Remove unnecessary advance in scatterwalk_pagedone
    crypto: scatterwalk - Fix test in scatterwalk_done
    crypto: api - Optimise away crypto_yield when hard preemption is on
    crypto: scatterwalk - add no-copy support to copychunks
    crypto: scatterwalk - Remove scatterwalk_bytes_sglen
    crypto: omap - Stop using crypto scatterwalk_bytes_sglen
    crypto: skcipher - Remove top-level givcipher interface
    crypto: user - Remove crypto_lookup_skcipher call
    crypto: cts - Convert to skcipher
    ...

    Linus Torvalds
     
  • Pull documentation updates from Jonathan Corbet:
    "Some big changes this month, headlined by the addition of a new
    formatted documentation mechanism based on the Sphinx system.

    The objectives here are to make it easier to create better-integrated
    (and more attractive) documents while (eventually) dumping our
    one-of-a-kind, cobbled-together system for something that is widely
    used and maintained by others. There's a fair amount of information
    what's being done, why, and how to use it in:

    https://lwn.net/Articles/692704/
    https://lwn.net/Articles/692705/

    Closer to home, Documentation/kernel-documentation.rst describes how
    it works.

    For now, the new system exists alongside the old one; you should soon
    see the GPU documentation converted over in the DRM pull and some
    significant media conversion work as well. Once all the docs have
    been moved over and we're convinced that the rough edges (of which are
    are a few) have been smoothed over, the DocBook-based stuff should go
    away.

    Primary credit is to Jani Nikula for doing the heavy lifting to make
    this stuff actually work; there has also been notable effort from
    Markus Heiser, Daniel Vetter, and Mauro Carvalho Chehab.

    Expect a couple of conflicts on the new index.rst file over the course
    of the merge window; they are trivially resolvable. That file may be
    a bit of a conflict magnet in the short term, but I don't expect that
    situation to last for any real length of time.

    Beyond that, of course, we have the usual collection of tweaks,
    updates, and typo fixes"

    * tag 'docs-for-linus' of git://git.lwn.net/linux: (77 commits)
    doc-rst: kernel-doc: fix handling of address_space tags
    Revert "doc/sphinx: Enable keep_warnings"
    doc-rst: kernel-doc directive, fix state machine reporter
    docs: deprecate kernel-doc-nano-HOWTO.txt
    doc/sphinx: Enable keep_warnings
    Documentation: add watermark_scale_factor to the list of vm systcl file
    kernel-doc: Fix up warning output
    docs: Get rid of some kernel-documentation warnings
    doc-rst: add an option to ignore DocBooks when generating docs
    workqueue: Fix a typo in workqueue.txt
    Doc: ocfs: Fix typo in filesystems/ocfs2-online-filecheck.txt
    Documentation/sphinx: skip build if user requested specific DOCBOOKS
    Documentation: add cleanmediadocs to the documentation targets
    Add .pyc files to .gitignore
    Doc: PM: Fix a typo in intel_powerclamp.txt
    doc-rst: flat-table directive - initial implementation
    Documentation: add meta-documentation for Sphinx and kernel-doc
    Documentation: tiny typo fix in usb/gadget_multi.txt
    Documentation: fix wrong value in md.txt
    bcache: documentation formatting, edited for clarity, stripe alignment notes
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "There are a couple of new things for s390 with this merge request:

    - a new scheduling domain "drawer" is added to reflect the unusual
    topology found on z13 machines. Performance tests showed up to 8
    percent gain with the additional domain.

    - the new crc-32 checksum crypto module uses the vector-galois-field
    multiply and sum SIMD instruction to speed up crc-32 and crc-32c.

    - proper __ro_after_init support, this requires RO_AFTER_INIT_DATA in
    the generic vmlinux.lds linker script definitions.

    - kcov instrumentation support. A prerequisite for that is the
    inline assembly basic block cleanup, which is the reason for the
    net/iucv/iucv.c change.

    - support for 2GB pages is added to the hugetlbfs backend.

    Then there are two removals:

    - the oprofile hardware sampling support is dead code and is removed.
    The oprofile user space uses the perf interface nowadays.

    - the ETR clock synchronization is removed, this has been superseeded
    be the STP clock synchronization. And it always has been
    "interesting" code..

    And the usual bug fixes and cleanups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (82 commits)
    s390/pci: Delete an unnecessary check before the function call "pci_dev_put"
    s390/smp: clean up a condition
    s390/cio/chp : Remove deprecated create_singlethread_workqueue
    s390/chsc: improve channel path descriptor determination
    s390/chsc: sanitize fmt check for chp_desc determination
    s390/cio: make fmt1 channel path descriptor optional
    s390/chsc: fix ioctl CHSC_INFO_CU command
    s390/cio/device_ops: fix kernel doc
    s390/cio: allow to reset channel measurement block
    s390/console: Make preferred console handling more consistent
    s390/mm: fix gmap tlb flush issues
    s390/mm: add support for 2GB hugepages
    s390: have unique symbol for __switch_to address
    s390/cpuinfo: show maximum thread id
    s390/ptrace: clarify bits in the per_struct
    s390: stack address vs thread_info
    s390: remove pointless load within __switch_to
    s390: enable kcov support
    s390/cpumf: use basic block for ecctr inline assembly
    s390/hypfs: use basic block for diag inline assembly
    ...

    Linus Torvalds
     
  • Pull KVM leftovers from Radim Krčmář:
    "This is a combination of two pull requests for 4.7-rc8 that were not
    merged due to looking hairy. I have changed the tag message to focus
    on circumstances of contained reverts as they were likely the reason
    behind rejection.

    This merge introduces three patches that are later reverted,

    - Switching of MSR_TSC_AUX in SVM was thought to cause a host
    misbehavior, but it was later cleared of those doubts and the patch
    moved code to a hot path, so we reverted it. That patch also
    needed a fix for 32 bit builds and both were reverted in one go.

    - Al Viro noticed that a fix for a leak in an error path was not
    valid with the given API and provided a better fix, so the original
    patch was reverted.

    Then there are two VMX fixes that move code around because VMCS was
    not accessed between vcpu_load() and vcpu_put(), a simple ARM VHE fix,
    and two one-liners for PML and MTRR"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    arm64: KVM: VHE: Context switch MDSCR_EL1
    KVM: VMX: handle PML full VMEXIT that occurs during event delivery
    Revert "KVM: SVM: fix trashing of MSR_TSC_AUX"
    KVM: SVM: do not set MSR_TSC_AUX on 32-bit builds
    KVM: don't use anon_inode_getfd() before possible failures
    Revert "KVM: release anon file in failure path of vm creation"
    KVM: release anon file in failure path of vm creation
    KVM: nVMX: Fix memory corruption when using VMCS shadowing
    kvm: vmx: ensure VMCS is current while enabling PML
    KVM: SVM: fix trashing of MSR_TSC_AUX
    KVM: MTRR: fix kvm_mtrr_check_gfn_range_consistency page fault

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "This tree contains tooling fixes plus some additions:

    - fixes to the vdso2c build environment that Stephen Rothwell is
    using for the linux-next build (Arnaldo Carvalho de Melo)

    - AVX-512 instruction mappings (Adrian Hunter)

    - misc fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "perf tools: event.h needs asm/perf_regs.h"
    x86: Make the vdso2c compiler use the host architecture headers
    tools build: Fix objtool build with ARCH=x86_64
    objtool: Always use host headers
    objtool: Use tools/scripts/Makefile.arch to get ARCH and HOSTARCH
    tools build: Add HOSTARCH Makefile variable
    perf tests kmod-path: Fix build on ubuntu:16.04-x-armhf
    perf tools: Add AVX-512 instructions to the new instructions test
    perf tools: Add AVX-512 support to the instruction decoder used by Intel PT
    x86/insn: Add AVX-512 support to the instruction decoder
    x86/insn: perf tools: Fix vcvtph2ps instruction decoding

    Linus Torvalds
     

26 Jul, 2016

18 commits

  • Pull irq updates from Thomas Gleixner:
    "The irq department delivers:

    - new core infrastructure to allow better management of multi-queue
    devices (interrupt spreading, node aware descriptor allocation ...)

    - a new interrupt flow handler to support the new fangled Intel VMD
    devices.

    - yet another new interrupt controller driver.

    - a series of fixes which addresses sparse warnings, missing
    includes, missing static declarations etc from Ben Dooks.

    - a fix for the error handling in the hierarchical domain allocation
    code.

    - the usual pile of small updates to core and driver code"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    genirq: Fix missing irq allocation affinity hint
    irqdomain: Fix irq_domain_alloc_irqs_recursive() error handling
    irq/Documentation: Correct result of echnoing 5 to smp_affinity
    MAINTAINERS: Remove Jiang Liu from irq domains
    genirq/msi: Fix broken debug output
    genirq: Add a helper to spread an affinity mask for MSI/MSI-X vectors
    genirq/msi: Make use of affinity aware allocations
    genirq: Use affinity hint in irqdesc allocation
    genirq: Add affinity hint to irq allocation
    genirq: Introduce IRQD_AFFINITY_MANAGED flag
    genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP
    irqchip/s3c24xx: Fixup IO accessors for big endian
    irqchip/exynos-combiner: Fix usage of __raw IO
    irqdomain: Fix disposal of mappings for interrupt hierarchies
    irqchip/aspeed-vic: Add irq controller for Aspeed
    doc/devicetree: Add Aspeed VIC bindings
    x86/PCI/VMD: Use untracked irq handler
    genirq: Add untracked irq handler
    irqchip/mips-gic: Populate irq_domain names
    irqchip/gicv3-its: Implement two-level(indirect) device table support
    ...

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "This update provides the following changes:

    - The rework of the timer wheel which addresses the shortcomings of
    the current wheel (cascading, slow search for next expiring timer,
    etc). That's the first major change of the wheel in almost 20
    years since Finn implemted it.

    - A large overhaul of the clocksource drivers init functions to
    consolidate the Device Tree initialization

    - Some more Y2038 updates

    - A capability fix for timerfd

    - Yet another clock chip driver

    - The usual pile of updates, comment improvements all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (130 commits)
    tick/nohz: Optimize nohz idle enter
    clockevents: Make clockevents_subsys static
    clocksource/drivers/time-armada-370-xp: Fix return value check
    timers: Implement optimization for same expiry time in mod_timer()
    timers: Split out index calculation
    timers: Only wake softirq if necessary
    timers: Forward the wheel clock whenever possible
    timers/nohz: Remove pointless tick_nohz_kick_tick() function
    timers: Optimize collect_expired_timers() for NOHZ
    timers: Move __run_timers() function
    timers: Remove set_timer_slack() leftovers
    timers: Switch to a non-cascading wheel
    timers: Reduce the CPU index space to 256k
    timers: Give a few structs and members proper names
    hlist: Add hlist_is_singular_node() helper
    signals: Use hrtimer for sigtimedwait()
    timers: Remove the deprecated mod_timer_pinned() API
    timers, net/ipv4/inet: Initialize connection request timers as pinned
    timers, drivers/tty/mips_ejtag: Initialize the poll timer as pinned
    timers, drivers/tty/metag_da: Initialize the poll timer as pinned
    ...

    Linus Torvalds
     
  • Pull x86 fix from Ingo Molnar:
    "Leftover fix from the v4.7 cycle: adds a reboot quirk"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/reboot: Add Dell Optiplex 7450 AIO reboot quirk

    Linus Torvalds
     
  • Pull x86 timer updates from Ingo Molnar:
    "The main change in this tree is the reworking, fixing and extension of
    the TSC frequency enumeration code (by Len Brown)"

    * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tsc: Remove the unused check_tsc_disabled()
    x86/tsc: Enumerate BXT tsc_khz via CPUID
    x86/tsc: Enumerate SKL cpu_khz and tsc_khz via CPUID
    x86/tsc_msr: Remove irqoff around MSR-based TSC enumeration
    x86/tsc_msr: Add Airmont reference clock values
    x86/tsc_msr: Correct Silvermont reference clock values
    x86/tsc_msr: Update comments, expand definitions
    x86/tsc_msr: Remove debugging messages
    x86/tsc_msr: Identify Intel-specific code
    Revert "x86/tsc: Add missing Cherrytrail frequency to the table"

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

    - Intel-SoC enhancements (Andy Shevchenko)

    - Intel CPU symbolic model definition rework (Dave Hansen)

    - ... other misc changes"

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    x86/sfi: Enable enumeration of SD devices
    x86/pci: Use MRFLD abbreviation for Merrifield
    x86/platform/intel-mid: Make vertical indentation consistent
    x86/platform/intel-mid: Mark regulators explicitly defined
    x86/platform/intel-mid: Rename mrfl.c to mrfld.c
    x86/platform/intel-mid: Enable spidev on Intel Edison boards
    x86/platform/intel-mid: Extend PWRMU to support Penwell
    x86/pci, x86/platform/intel_mid_pci: Remove duplicate power off code
    x86/platform/intel-mid: Add pinctrl for Intel Merrifield
    x86/platform/intel-mid: Enable GPIO expanders on Edison
    x86/platform/intel-mid: Add Power Management Unit driver
    x86/platform/atom/punit: Enable support for Merrifield
    x86/platform/intel_mid_pci: Rework IRQ0 workaround
    x86, thermal: Clean up and fix CPU model detection for intel_soc_dts_thermal
    x86, mmc: Use Intel family name macros for mmc driver
    x86/intel_telemetry: Use Intel family name macros for telemetry driver
    x86/acpi/lss: Use Intel family name macros for the acpi_lpss driver
    x86/cpufreq: Use Intel family name macros for the intel_pstate cpufreq driver
    x86/platform: Use new Intel model number macros
    x86/intel_idle: Use Intel family macros for intel_idle
    ...

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

    - a large series of cleanups, fixes and enhancements to re-enable the
    XSAVES instruction on Intel CPUs - which is the most advanced
    instruction to do FPU context switches (Yu-cheng Yu, Fenghua Yu)

    - Add FPU tracepoints for the FPU state machine (Dave Hansen)"

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/fpu: Do not BUG_ON() in early FPU code
    x86/fpu/xstate: Re-enable XSAVES
    x86/fpu/xstate: Fix fpstate_init() for XRSTORS
    x86/fpu/xstate: Return NULL for disabled xstate component address
    x86/fpu/xstate: Fix __fpu_restore_sig() for XSAVES
    x86/fpu/xstate: Fix xstate_offsets, xstate_sizes for non-extended xstates
    x86/fpu/xstate: Fix XSTATE component offset print out
    x86/fpu/xstate: Fix PTRACE frames for XSAVES
    x86/fpu/xstate: Fix supervisor xstate component offset
    x86/fpu/xstate: Align xstate components according to CPUID
    x86/fpu/xstate: Copy xstate registers directly to the signal frame when compacted format is in use
    x86/fpu/xstate: Keep init_fpstate.xsave.header.xfeatures as zero for init optimization
    x86/fpu/xstate: Rename 'xstate_size' to 'fpu_kernel_xstate_size', to distinguish it from 'fpu_user_xstate_size'
    x86/fpu/xstate: Define and use 'fpu_user_xstate_size'
    x86/fpu: Add tracepoints to dump FPU state at key points

    Linus Torvalds
     
  • Pull x86 stackdump update from Ingo Molnar:
    "A number of stackdump enhancements"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/dumpstack: Add show_stack_regs() and use it
    printk: Make the printk*once() variants return a value
    x86/dumpstack: Honor supplied @regs arg

    Linus Torvalds
     
  • Pull x86 cleanups from Ingo Molnar:
    "Three small cleanups"

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    lguest: Read offset of device_cap later
    lguest: Read length of device_cap later
    x86: Do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB

    Linus Torvalds
     
  • Pull x86 build updates from Ingo Molnar:
    "A build system fix and a cleanup"

    * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    kbuild: Remove stale asm-generic wrappers
    kbuild, x86: Track generated headers with generated-y

    Linus Torvalds
     
  • Pull x86 boot updates from Ingo Molnar:
    "The main changes:

    - add initial commits to randomize kernel memory section virtual
    addresses, enabled via a new kernel option: RANDOMIZE_MEMORY
    (Thomas Garnier, Kees Cook, Baoquan He, Yinghai Lu)

    - enhance KASLR (RANDOMIZE_BASE) physical memory randomization (Kees
    Cook)

    - EBDA/BIOS region boot quirk cleanups (Andy Lutomirski, Ingo Molnar)

    - misc cleanups/fixes"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/boot: Simplify EBDA-vs-BIOS reservation logic
    x86/boot: Clarify what x86_legacy_features.reserve_bios_regions does
    x86/boot: Reorganize and clean up the BIOS area reservation code
    x86/mm: Do not reference phys addr beyond kernel
    x86/mm: Add memory hotplug support for KASLR memory randomization
    x86/mm: Enable KASLR for vmalloc memory regions
    x86/mm: Enable KASLR for physical mapping memory regions
    x86/mm: Implement ASLR for kernel memory regions
    x86/mm: Separate variable for trampoline PGD
    x86/mm: Add PUD VA support for physical mapping
    x86/mm: Update physical mapping variable names
    x86/mm: Refactor KASLR entropy functions
    x86/KASLR: Fix boot crash with certain memory configurations
    x86/boot/64: Add forgotten end of function marker
    x86/KASLR: Allow randomization below the load address
    x86/KASLR: Extend kernel image physical address randomization to addresses larger than 4G
    x86/KASLR: Randomize virtual address separately
    x86/KASLR: Clarify identity map interface
    x86/boot: Refuse to build with data relocations
    x86/KASLR, x86/power: Remove x86 hibernation restrictions

    Linus Torvalds
     
  • Pull x86 mm updates from Ingo Molnar:
    "Various x86 low level modifications:

    - preparatory work to support virtually mapped kernel stacks (Andy
    Lutomirski)

    - support for 64-bit __get_user() on 32-bit kernels (Benjamin
    LaHaise)

    - (involved) workaround for Knights Landing CPU erratum (Dave Hansen)

    - MPX enhancements (Dave Hansen)

    - mremap() extension to allow remapping of the special VDSO vma, for
    purposes of user level context save/restore (Dmitry Safonov)

    - hweight and entry code cleanups (Borislav Petkov)

    - bitops code generation optimizations and cleanups with modern GCC
    (H. Peter Anvin)

    - syscall entry code optimizations (Paolo Bonzini)"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)
    x86/mm/cpa: Add missing comment in populate_pdg()
    x86/mm/cpa: Fix populate_pgd(): Stop trying to deallocate failed PUDs
    x86/syscalls: Add compat_sys_preadv64v2/compat_sys_pwritev64v2
    x86/smp: Remove unnecessary initialization of thread_info::cpu
    x86/smp: Remove stack_smp_processor_id()
    x86/uaccess: Move thread_info::addr_limit to thread_struct
    x86/dumpstack: Rename thread_struct::sig_on_uaccess_error to sig_on_uaccess_err
    x86/uaccess: Move thread_info::uaccess_err and thread_info::sig_on_uaccess_err to thread_struct
    x86/dumpstack: When OOPSing, rewind the stack before do_exit()
    x86/mm/64: In vmalloc_fault(), use CR3 instead of current->active_mm
    x86/dumpstack/64: Handle faults when printing the "Stack: " part of an OOPS
    x86/dumpstack: Try harder to get a call trace on stack overflow
    x86/mm: Remove kernel_unmap_pages_in_pgd() and efi_cleanup_page_tables()
    x86/mm/cpa: In populate_pgd(), don't set the PGD entry until it's populated
    x86/mm/hotplug: Don't remove PGD entries in remove_pagetable()
    x86/mm: Use pte_none() to test for empty PTE
    x86/mm: Disallow running with 32-bit PTEs to work around erratum
    x86/mm: Ignore A/D bits in pte/pmd/pud_none()
    x86/mm: Move swap offset/type up in PTE to work around erratum
    x86/entry: Inline enter_from_user_mode()
    ...

    Linus Torvalds
     
  • Pull x86/apic updates from Ingo Molnar:
    "Misc cleanups and a small fix"

    * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/apic: Remove the unused struct apic::apic_id_mask field
    x86/apic: Fix misspelled APIC
    x86/ioapic: Simplify ioapic_setup_resources()

    Linus Torvalds
     
  • Pull NOHZ updates from Ingo Molnar:

    - fix system/idle cputime leaked on cputime accounting (all nohz
    configs) (Rik van Riel)

    - remove the messy, ad-hoc irqtime account on nohz-full and make it
    compatible with CONFIG_IRQ_TIME_ACCOUNTING=y instead (Rik van Riel)

    - cleanups (Frederic Weisbecker)

    - remove unecessary irq disablement in the irqtime code (Rik van Riel)

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/cputime: Drop local_irq_save/restore from irqtime_account_irq()
    sched/cputime: Reorganize vtime native irqtime accounting headers
    sched/cputime: Clean up the old vtime gen irqtime accounting completely
    sched/cputime: Replace VTIME_GEN irq time code with IRQ_TIME_ACCOUNTING code
    sched/cputime: Count actually elapsed irq & softirq time

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:

    - introduce and use task_rcu_dereference()/try_get_task_struct() to fix
    and generalize task_struct handling (Oleg Nesterov)

    - do various per entity load tracking (PELT) fixes and optimizations
    (Peter Zijlstra)

    - cputime virt-steal time accounting enhancements/fixes (Wanpeng Li)

    - introduce consolidated cputime output file cpuacct.usage_all and
    related refactorings (Zhao Lei)

    - ... plus misc fixes and enhancements

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/core: Panic on scheduling while atomic bugs if kernel.panic_on_warn is set
    sched/cpuacct: Introduce cpuacct.usage_all to show all CPU stats together
    sched/cpuacct: Use loop to consolidate code in cpuacct_stats_show()
    sched/cpuacct: Merge cpuacct_usage_index and cpuacct_stat_index enums
    sched/fair: Rework throttle_count sync
    sched/core: Fix sched_getaffinity() return value kerneldoc comment
    sched/fair: Reorder cgroup creation code
    sched/fair: Apply more PELT fixes
    sched/fair: Fix PELT integrity for new tasks
    sched/cgroup: Fix cpu_cgroup_fork() handling
    sched/fair: Fix PELT integrity for new groups
    sched/fair: Fix and optimize the fork() path
    sched/cputime: Add steal time support to full dynticks CPU time accounting
    sched/cputime: Fix prev steal time accouting during CPU hotplug
    KVM: Fix steal clock warp during guest CPU hotplug
    sched/debug: Always show 'nr_migrations'
    sched/fair: Use task_rcu_dereference()
    sched/api: Introduce task_rcu_dereference() and try_get_task_struct()
    sched/idle: Optimize the generic idle loop
    sched/fair: Fix the wrong throttled clock time for cfs_rq_clock_task()

    Linus Torvalds
     
  • Linux 4.7

    Kees Cook
     
  • Pull perf updates from Ingo Molnar:
    "With over 300 commits it's been a busy cycle - with most of the work
    concentrated on the tooling side (as it should).

    The main kernel side enhancements were:

    - Add per event callchain limit: Recently we introduced a sysctl to
    tune the max-stack for all events for which callchains were
    requested:

    $ sysctl kernel.perf_event_max_stack
    kernel.perf_event_max_stack = 127

    Now this patch introduces a way to configure this per event, i.e.
    this becomes possible:

    $ perf record -e sched:*/max-stack=2/ -e block:*/max-stack=10/ -a

    allowing finer tuning of how much buffer space callchains use.

    This uses an u16 from the reserved space at the end, leaving
    another u16 for future use.

    There has been interest in even finer tuning, namely to control the
    max stack for kernel and userspace callchains separately. Further
    discussion is needed, we may for instance use the remaining u16 for
    that and when it is present, assume that the sample_max_stack
    introduced in this patch applies for the kernel, and the u16 left
    is used for limiting the userspace callchain (Arnaldo Carvalho de
    Melo)

    - Optimize AUX event (hardware assisted side-band event) delivery
    (Kan Liang)

    - Rework Intel family name macro usage (this is partially x86 arch
    work) (Dave Hansen)

    - Refine and fix Intel LBR support (David Carrillo-Cisneros)

    - Add support for Intel 'TopDown' events (Andi Kleen)

    - Intel uncore PMU driver fixes and enhancements (Kan Liang)

    - ... other misc changes.

    Here's an incomplete list of the tooling enhancements (but there's
    much more, see the shortlog and the git log for details):

    - Support cross unwinding, i.e. collecting '--call-graph dwarf'
    perf.data files in one machine and then doing analysis in another
    machine of a different hardware architecture. This enables, for
    instance, to do:

    $ perf record -a --call-graph dwarf

    on a x86-32 or aarch64 system and then do 'perf report' on it on a
    x86_64 workstation (He Kuang)

    - Allow reading from a backward ring buffer (one setup via
    sys_perf_event_open() with perf_event_attr.write_backward = 1)
    (Wang Nan)

    - Finish merging initial SDT (Statically Defined Traces) support, see
    cset comments for details about how it all works (Masami Hiramatsu)

    - Support attaching eBPF programs to tracepoints (Wang Nan)

    - Add demangling of symbols in programs written in the Rust language
    (David Tolnay)

    - Add support for tracepoints in the python binding, including an
    example, that sets up and parses sched:sched_switch events,
    tools/perf/python/tracepoint.py (Jiri Olsa)

    - Introduce --stdio-color to set up the color output mode selection
    in 'annotate' and 'report', allowing emit color escape sequences
    when redirecting the output of these tools (Arnaldo Carvalho de
    Melo)

    - Add 'callindent' option to 'perf script -F', to indent the Intel PT
    call stack, making this output more ftrace-like (Adrian Hunter,
    Andi Kleen)

    - Allow dumping the object files generated by llvm when processing
    eBPF scriptlet events (Wang Nan)

    - Add stackcollapse.py script to help generating flame graphs (Paolo
    Bonzini)

    - Add --ldlat option to 'perf mem' to specify load latency for loads
    event (e.g. cpu/mem-loads/ ) (Jiri Olsa)

    - Tooling support for Intel TopDown counters, recently added to the
    kernel (Andi Kleen)"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (303 commits)
    perf tests: Add is_printable_array test
    perf tools: Make is_printable_array global
    perf script python: Fix string vs byte array resolving
    perf probe: Warn unmatched function filter correctly
    perf cpu_map: Add more helpers
    perf stat: Balance opening and reading events
    tools: Copy linux/{hash,poison}.h and check for drift
    perf tools: Remove include/linux/list.h from perf's MANIFEST
    tools: Copy the bitops files accessed from the kernel and check for drift
    Remove: kernel unistd*h files from perf's MANIFEST, not used
    perf tools: Remove tools/perf/util/include/linux/const.h
    perf tools: Remove tools/perf/util/include/asm/byteorder.h
    perf tools: Add missing linux/compiler.h include to perf-sys.h
    perf jit: Remove some no-op error handling
    perf jit: Add missing curly braces
    objtool: Initialize variable to silence old compiler
    objtool: Add -I$(srctree)/tools/arch/$(ARCH)/include/uapi
    perf record: Add --tail-synthesize option
    perf session: Don't warn about out of order event if write_backward is used
    perf tools: Enable overwrite settings
    ...

    Linus Torvalds
     
  • Pull RAS updates from Ingo Molnar:
    "The biggest change in this cycle was an enhancement by Yazen Ghannam
    to reduce the number of MCE error injection related IPIs.

    The rest are smaller fixes"

    * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Fix mce_rdmsrl() warning message
    x86/RAS/AMD: Reduce the number of IPIs when prepping error injection
    x86/mce/AMD: Increase size of the bank_map type
    x86/mce: Do not use bank 1 for APEI generated error logs

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "The locking tree was busier in this cycle than the usual pattern - a
    couple of major projects happened to coincide.

    The main changes are:

    - implement the atomic_fetch_{add,sub,and,or,xor}() API natively
    across all SMP architectures (Peter Zijlstra)

    - add atomic_fetch_{inc/dec}() as well, using the generic primitives
    (Davidlohr Bueso)

    - optimize various aspects of rwsems (Jason Low, Davidlohr Bueso,
    Waiman Long)

    - optimize smp_cond_load_acquire() on arm64 and implement LSE based
    atomic{,64}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}()
    on arm64 (Will Deacon)

    - introduce smp_acquire__after_ctrl_dep() and fix various barrier
    mis-uses and bugs (Peter Zijlstra)

    - after discovering ancient spin_unlock_wait() barrier bugs in its
    implementation and usage, strengthen its semantics and update/fix
    usage sites (Peter Zijlstra)

    - optimize mutex_trylock() fastpath (Peter Zijlstra)

    - ... misc fixes and cleanups"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (67 commits)
    locking/atomic: Introduce inc/dec variants for the atomic_fetch_$op() API
    locking/barriers, arch/arm64: Implement LDXR+WFE based smp_cond_load_acquire()
    locking/static_keys: Fix non static symbol Sparse warning
    locking/qspinlock: Use __this_cpu_dec() instead of full-blown this_cpu_dec()
    locking/atomic, arch/tile: Fix tilepro build
    locking/atomic, arch/m68k: Remove comment
    locking/atomic, arch/arc: Fix build
    locking/Documentation: Clarify limited control-dependency scope
    locking/atomic, arch/rwsem: Employ atomic_long_fetch_add()
    locking/atomic, arch/qrwlock: Employ atomic_fetch_add_acquire()
    locking/atomic, arch/mips: Convert to _relaxed atomics
    locking/atomic, arch/alpha: Convert to _relaxed atomics
    locking/atomic: Remove the deprecated atomic_{set,clear}_mask() functions
    locking/atomic: Remove linux/atomic.h:atomic_fetch_or()
    locking/atomic: Implement atomic{,64,_long}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}()
    locking/atomic: Fix atomic64_relaxed() bits
    locking/atomic, arch/xtensa: Implement atomic_fetch_{add,sub,and,or,xor}()
    locking/atomic, arch/x86: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
    locking/atomic, arch/tile: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
    locking/atomic, arch/sparc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
    ...

    Linus Torvalds