25 Jun, 2015

4 commits

  • There is a very subtle difference between mmap()+mlock() vs
    mmap(MAP_LOCKED) semantic. The former one fails if the population of the
    area fails while the later one doesn't. This basically means that
    mmap(MAPLOCKED) areas might see major fault after mmap syscall returns
    which is not the case for mlock. mmap man page has already been altered
    but Documentation/vm/unevictable-lru.txt deserves a clarification as well.

    Signed-off-by: Michal Hocko
    Reported-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Change the default behavior of watchdog so it only runs on the
    housekeeping cores when nohz_full is enabled at build and boot time.
    Allow modifying the set of cores the watchdog is currently running on
    with a new kernel.watchdog_cpumask sysctl.

    In the current system, the watchdog subsystem runs a periodic timer that
    schedules the watchdog kthread to run. However, nohz_full cores are
    designed to allow userspace application code running on those cores to
    have 100% access to the CPU. So the watchdog system prevents the
    nohz_full application code from being able to run the way it wants to,
    thus the motivation to suppress the watchdog on nohz_full cores, which
    this patchset provides by default.

    However, if we disable the watchdog globally, then the housekeeping
    cores can't benefit from the watchdog functionality. So we allow
    disabling it only on some cores. See Documentation/lockup-watchdogs.txt
    for more information.

    [jhubbard@nvidia.com: fix a watchdog crash in some configurations]
    Signed-off-by: Chris Metcalf
    Acked-by: Don Zickus
    Cc: Ingo Molnar
    Cc: Ulrich Obergfell
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra
    Cc: Frederic Weisbecker
    Signed-off-by: John Hubbard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     
  • Pull arm64 updates from Catalin Marinas:
    "Mostly refactoring/clean-up:

    - CPU ops and PSCI (Power State Coordination Interface) refactoring
    following the merging of the arm64 ACPI support, together with
    handling of Trusted (secure) OS instances

    - Using fixmap for permanent FDT mapping, removing the initial dtb
    placement requirements (within 512MB from the start of the kernel
    image). This required moving the FDT self reservation out of the
    memreserve processing

    - Idmap (1:1 mapping used for MMU on/off) handling clean-up

    - Removing flush_cache_all() - not safe on ARM unless the MMU is off.
    Last stages of CPU power down/up are handled by firmware already

    - "Alternatives" (run-time code patching) refactoring and support for
    immediate branch patching, GICv3 CPU interface access

    - User faults handling clean-up

    And some fixes:

    - Fix for VDSO building with broken ELF toolchains

    - Fix another case of init_mm.pgd usage for user mappings (during
    ASID roll-over broadcasting)

    - Fix for FPSIMD reloading after CPU hotplug

    - Fix for missing syscall trace exit

    - Workaround for .inst asm bug

    - Compat fix for switching the user tls tpidr_el0 register"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (42 commits)
    arm64: use private ratelimit state along with show_unhandled_signals
    arm64: show unhandled SP/PC alignment faults
    arm64: vdso: work-around broken ELF toolchains in Makefile
    arm64: kernel: rename __cpu_suspend to keep it aligned with arm
    arm64: compat: print compat_sp instead of sp
    arm64: mm: Fix freeing of the wrong memmap entries with !SPARSEMEM_VMEMMAP
    arm64: entry: fix context tracking for el0_sp_pc
    arm64: defconfig: enable memtest
    arm64: mm: remove reference to tlb.S from comment block
    arm64: Do not attempt to use init_mm in reset_context()
    arm64: KVM: Switch vgic save/restore to alternative_insn
    arm64: alternative: Introduce feature for GICv3 CPU interface
    arm64: psci: fix !CONFIG_HOTPLUG_CPU build warning
    arm64: fix bug for reloading FPSIMD state after CPU hotplug.
    arm64: kernel thread don't need to save fpsimd context.
    arm64: fix missing syscall trace exit
    arm64: alternative: Work around .inst assembler bugs
    arm64: alternative: Merge alternative-asm.h into alternative.h
    arm64: alternative: Allow immediate branch as alternative instruction
    arm64: Rework alternate sequence for ARM erratum 845719
    ...

    Linus Torvalds
     
  • Pull first batch of KVM updates from Paolo Bonzini:
    "The bulk of the changes here is for x86. And for once it's not for
    silicon that no one owns: these are really new features for everyone.

    Details:

    - ARM:
    several features are in progress but missed the 4.2 deadline.
    So here is just a smattering of bug fixes, plus enabling the
    VFIO integration.

    - s390:
    Some fixes/refactorings/optimizations, plus support for 2GB
    pages.

    - x86:
    * host and guest support for marking kvmclock as a stable
    scheduler clock.
    * support for write combining.
    * support for system management mode, needed for secure boot in
    guests.
    * a bunch of cleanups required for the above
    * support for virtualized performance counters on AMD
    * legacy PCI device assignment is deprecated and defaults to "n"
    in Kconfig; VFIO replaces it

    On top of this there are also bug fixes and eager FPU context
    loading for FPU-heavy guests.

    - Common code:
    Support for multiple address spaces; for now it is used only for
    x86 SMM but the s390 folks also have plans"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (124 commits)
    KVM: s390: clear floating interrupt bitmap and parameters
    KVM: x86/vPMU: Enable PMU handling for AMD PERFCTRn and EVNTSELn MSRs
    KVM: x86/vPMU: Implement AMD vPMU code for KVM
    KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch
    KVM: x86/vPMU: introduce kvm_pmu_msr_idx_to_pmc
    KVM: x86/vPMU: reorder PMU functions
    KVM: x86/vPMU: whitespace and stylistic adjustments in PMU code
    KVM: x86/vPMU: use the new macros to go between PMC, PMU and VCPU
    KVM: x86/vPMU: introduce pmu.h header
    KVM: x86/vPMU: rename a few PMU functions
    KVM: MTRR: do not map huge page for non-consistent range
    KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type
    KVM: MTRR: introduce mtrr_for_each_mem_type
    KVM: MTRR: introduce fixed_mtrr_addr_* functions
    KVM: MTRR: sort variable MTRRs
    KVM: MTRR: introduce var_mtrr_range
    KVM: MTRR: introduce fixed_mtrr_segment table
    KVM: MTRR: improve kvm_mtrr_get_guest_memory_type
    KVM: MTRR: do not split 64 bits MSR content
    KVM: MTRR: clean up mtrr default type
    ...

    Linus Torvalds
     

24 Jun, 2015

15 commits

  • Pull powerpc updates from Michael Ellerman:

    - disable the 32-bit vdso when building LE, so we can build with a
    64-bit only toolchain.

    - EEH fixes from Gavin & Richard.

    - enable the sys_kcmp syscall from Laurent.

    - sysfs control for fastsleep workaround from Shreyas.

    - expose OPAL events as an irq chip by Alistair.

    - MSI ops moved to pci_controller_ops by Daniel.

    - fix for kernel to userspace backtraces for perf from Anton.

    - merge pseries and pseries_le defconfigs from Cyril.

    - CXL in-kernel API from Mikey.

    - OPAL prd driver from Jeremy.

    - fix for DSCR handling & tests from Anshuman.

    - Powernv flash mtd driver from Cyril.

    - dynamic DMA Window support on powernv from Alexey.

    - LLVM clang fixes & workarounds from Anton.

    - reworked version of the patch to abort syscalls when transactional.

    - fix the swap encoding to support 4TB, from Aneesh.

    - various fixes as usual.

    - Freescale updates from Scott: Highlights include more 8xx
    optimizations, an e6500 hugetlb optimization, QMan device tree nodes,
    t1024/t1023 support, and various fixes and cleanup.

    * tag 'powerpc-4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux: (180 commits)
    cxl: Fix typo in debug print
    cxl: Add CXL_KERNEL_API config option
    powerpc/powernv: Fix wrong IOMMU table in pnv_ioda_setup_bus_dma()
    powerpc/mm: Change the swap encoding in pte.
    powerpc/mm: PTE_RPN_MAX is not used, remove the same
    powerpc/tm: Abort syscalls in active transactions
    powerpc/iommu/ioda2: Enable compile with IOV=on and IOMMU_API=off
    powerpc/include: Add opal-prd to installed uapi headers
    powerpc/powernv: fix construction of opal PRD messages
    powerpc/powernv: Increase opal-irqchip initcall priority
    powerpc: Make doorbell check preemption safe
    powerpc/powernv: pnv_init_idle_states() should only run on powernv
    macintosh/nvram: Remove as unused
    powerpc: Don't use gcc specific options on clang
    powerpc: Don't use -mno-strict-align on clang
    powerpc: Only use -mtraceback=no, -mno-string and -msoft-float if toolchain supports it
    powerpc: Only use -mabi=altivec if toolchain supports it
    powerpc: Fix duplicate const clang warning in user access code
    vfio: powerpc/spapr: Support Dynamic DMA windows
    vfio: powerpc/spapr: Register memory and define IOMMU v2
    ...

    Linus Torvalds
     
  • Pull IOMMU updates from Joerg Roedel:
    "This time with bigger changes than usual:

    - A new IOMMU driver for the ARM SMMUv3.

    This IOMMU is pretty different from SMMUv1 and v2 in that it is
    configured through in-memory structures and not through the MMIO
    register region. The ARM SMMUv3 also supports IO demand paging for
    PCI devices with PRI/PASID capabilities, but this is not
    implemented in the driver yet.

    - Lots of cleanups and device-tree support for the Exynos IOMMU
    driver. This is part of the effort to bring Exynos DRM support
    upstream.

    - Introduction of default domains into the IOMMU core code.

    The rationale behind this is to move functionalily out of the IOMMU
    drivers to common code to get to a unified behavior between
    different drivers. The patches here introduce a default domain for
    iommu-groups (isolation groups).

    A device will now always be attached to a domain, either the
    default domain or another domain handled by the device driver. The
    IOMMU drivers have to be modified to make use of that feature. So
    long the AMD IOMMU driver is converted, with others to follow.

    - Patches for the Intel VT-d drvier to fix DMAR faults that happen
    when a kdump kernel boots.

    When the kdump kernel boots it re-initializes the IOMMU hardware,
    which destroys all mappings from the crashed kernel. As this
    happens before the endpoint devices are re-initialized, any
    in-flight DMA causes a DMAR fault. These faults cause PCI master
    aborts, which some devices can't handle properly and go into an
    undefined state, so that the device driver in the kdump kernel
    fails to initialize them and the dump fails.

    This is now fixed by copying over the mapping structures (only
    context tables and interrupt remapping tables) from the old kernel
    and keep the old mappings in place until the device driver of the
    new kernel takes over. This emulates the the behavior without an
    IOMMU to the best degree possible.

    - A couple of other small fixes and cleanups"

    * tag 'iommu-updates-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (69 commits)
    iommu/amd: Handle large pages correctly in free_pagetable
    iommu/vt-d: Don't disable IR when it was previously enabled
    iommu/vt-d: Make sure copied over IR entries are not reused
    iommu/vt-d: Copy IR table from old kernel when in kdump mode
    iommu/vt-d: Set IRTA in intel_setup_irq_remapping
    iommu/vt-d: Disable IRQ remapping in intel_prepare_irq_remapping
    iommu/vt-d: Move QI initializationt to intel_setup_irq_remapping
    iommu/vt-d: Move EIM detection to intel_prepare_irq_remapping
    iommu/vt-d: Enable Translation only if it was previously disabled
    iommu/vt-d: Don't disable translation prior to OS handover
    iommu/vt-d: Don't copy translation tables if RTT bit needs to be changed
    iommu/vt-d: Don't do early domain assignment if kdump kernel
    iommu/vt-d: Allocate si_domain in init_dmars()
    iommu/vt-d: Mark copied context entries
    iommu/vt-d: Do not re-use domain-ids from the old kernel
    iommu/vt-d: Copy translation tables from old kernel
    iommu/vt-d: Detect pre enabled translation
    iommu/vt-d: Make root entry visible for hardware right after allocation
    iommu/vt-d: Init QI before root entry is allocated
    iommu/vt-d: Cleanup log messages
    ...

    Linus Torvalds
     
  • Pull MTD updates from Brian Norris:
    "JFFS2:
    - fix a theoretical unbalanced locking issue; the lock handling was a
    bit unclean, but AFAICT, it didn't actually lead to real deadlocks

    NAND:
    - brcmnand driver: new driver supporting NAND controller found
    originally on Broadcom STB SoCs (BCM7xxx), but now also found on
    BCM63xxx, iProc (e.g., Cygnus, BCM5301x), BCM3xxx, and more

    - begin factoring out BBT code so it can be shared between
    traditional (parallel) NAND drivers and upcoming SPI NAND drivers
    (WIP)

    - add common DT-based init support, so nand_base can pick up some
    flash properties automatically, using established common NAND DT
    properties

    - mxc_nand: support 8-bit ECC

    - pxa3xx_nand:
    * fix build for ARM64
    * use a jiffies-based timeout

    SPI NOR:
    - add a few new IDs

    - clear out some unnecessary entries

    - make sure SECT_4K flags are correct for all (?) entries

    Core:
    - fix mtd->usecount race conditions (BUG_ON())

    - switch to modern PM ops

    Other:
    - CFI: save code space by de-inlining large functions

    - clean up some partition parser selection code across several
    drivers

    - various miscellaneous changes, mostly minor"

    * tag 'for-linus-20150623' of git://git.infradead.org/linux-mtd: (57 commits)
    mtd: docg3: Fix kasprintf() usage
    mtd: docg3: Don't leak docg3->bbt in error path
    mtd: nandsim: Fix kasprintf() usage
    mtd: cs553x_nand: Fix kasprintf() usage
    mtd: r852: Fix device_create_file() usage
    mtd: brcmnand: drop unnecessary initialization
    mtd: propagate error codes from add_mtd_device()
    mtd: diskonchip: remove two-phase partitioning / registration
    mtd: dc21285: use raw spinlock functions for nw_gpio_lock
    mtd: chips: fixup dependencies, to prevent build error
    mtd: cfi_cmdset_0002: Initialize datum before calling map_word_load_partial
    mtd: cfi: deinline large functions
    mtd: lantiq-flash: use default partition parsers
    mtd: plat_nand: use default partition probe
    mtd: nand: correct indentation within conditional
    mtd: remove incorrect file name
    mtd: blktrans: use better error code for unimplemented ioctl()
    mtd: maps: Spelling s/reseved/reserved/
    mtd: blktrans: change blktrans_getgeo return value
    mtd: mxc_nand: generate nand_ecclayout for 8 bit ECC
    ...

    Linus Torvalds
     
  • Pull MFD updates from Lee Jones:
    "Changes to existing drivers:
    - Constify structures; throughout the subsystem
    - Move support to DT in; cros_ec
    - DT changes and documentation; cros-ec, max77693, max77686, arizona, da9063
    - ACPI changes and documentation; mfd-core
    - Use different platform specific API in; cros_ec_*, arizona-core
    - Remove unused parent field from; cros_ec_i2c
    - Add wake-up/reset delay in; cross_ec_spi, arizona-core
    - Staticise structures/functions in; cros_ec
    - Remove redundant code; arizona-core, max77686
    - Bugfix; twl4030-power
    - Allow compile test; aat2870, tps65910
    - MAINTAINERS adaptions; samsung, syscon
    - Resource Management (devm_*); arizona-core
    - Refactor Reset code; arizona-core
    - Insist on at least one full boot; arizona-core
    - Trivial formatting; arizona-core
    - Add low-power-sleep; arizona-core
    - IRQ ONESHOT changes; twl4030-irq, mc13xxx-core, wm831x-auxadc, htc-i2cpld,
    wm8350-core, ab8500-debugfs, ab8500-gpadc, si476x-i2c

    (Re-)moved drivers:
    - Move protocol helpers out to drivers/platform; cros_ec

    New drivers/supported devices:
    - Add support for AXP22x into axp20x
    - Add support for OnKey into da9063-core
    - Add support for Pinctrl into mt6397-core
    - New STMicroelectronics LPC Watchdog driver
    - New STMicroelectronics LPC Real-Time Clock driver"

    * tag 'mfd-for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (59 commits)
    mfd: lpc_ich: Assign subdevice ids automatically
    mfd: si476x-i2c: Pass the IRQF_ONESHOT flag
    mfd: ab8500-gpadc: Pass the IRQF_ONESHOT flag
    mfd: ab8500-debugfs: Pass the IRQF_ONESHOT flag
    mfd: wm8350-core: Pass the IRQF_ONESHOT flag
    mfd: htc-i2cpld: Pass the IRQF_ONESHOT flag
    mfd: wm831x-auxadc: Pass the IRQF_ONESHOT flag
    mfd: mc13xxx-core: Pass the IRQF_ONESHOT flag
    mfd: twl4030-irq: Pass the IRQF_ONESHOT flag
    mfd: mt6397-core: Add GPIO sub-module support
    mfd: arizona: Add convience defines for micd_rate/micd_bias_starttime
    mfd: dt: Add bindings for DA9063 OnKey
    mfd: da9063: Add support for OnKey driver
    mfd: arizona: Fix incorrect Makefile conditionals
    mfd: arizona: Add stub for wm5102_patch()
    mfd: Check ACPI device companion before checking resources
    Documentation: Add WM8998/WM1814 device tree bindings
    mfd: arizona: Split INx_MODE into two fields
    mfd: wm5110: Add delay before releasing reset line
    mfd: arizona: Add better support for system suspend
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "Another fairly quiet release, some new drivers with generic handling
    for minor features but nothing that makes a substantial difference
    outside of the subsystem or for most boards:

    - support for a bunch of new parameters which are present on enough
    regulators to be worth having generic handling for in the
    framework.

    - fixes for some issues with printing constraints during boot which
    should probably have gone in for v4.1 but didn't.

    - new drivers for Dialog DA9062, Maxim MAX77621 and Qualcomm SPMI
    regulators"

    * tag 'regulator-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (45 commits)
    regulator: qcom_spmi: Fix calculating number of voltages
    regulator: qcom_spmi: Add missing braces for aligned code
    regulator: fix simple_return.cocci warnings
    regulator: Add QCOM SPMI regulator driver
    regulator: Add docbook for soft start
    regulator: Add input current limit support
    regulator: Add soft start support
    regulator: Add pull down support
    regulator: Add system_load constraint
    regulator: max8973: Fix up ramp_delay for MAX8973_RAMP_25mV_PER_US case
    regulator: core: replace sprintf with scnprintf
    regulator: core: fix constraints output buffer
    regulator: core: Don't corrupt display when printing uV offsets
    regulator: max8973: add support for MAX77621
    regulator: max8973: configure ramp delay through callback
    regulator: pwm-regulator: Diffientiate between dev (device) and rdev (regulator_dev)
    regulator: pwm-regulator: Remove superfluous is_enabled check
    regulator: pwm-regulator: Remove unnecessary descriptor attribute from ddata
    regulator: core: Don't spew backtraces on duplicate sysfs
    regulator: da9063: Fix up irq leak
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "No framework updates for the SPI API this time around aside from one
    small fix, just driver improvments. Some highlights include:

    - New driver support for CSR USP, Mikrotik RB4xx and Zynq GQSPI
    controllers.

    - Modernisation of the OMAP McSPI controller driver, moving it to
    current APIs to enable support for a wider range of client drivers.

    - DMA support for the bcm2835 controller"

    * tag 'spi-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (60 commits)
    spi: zynq: Remove execute bit
    spi: atmel: add support to FIFOs
    spi: atmel: update DT bindings documentation
    spi: spi-fsl-dspi: Update DT binding documentation
    spi: pxa2xx: Constify ACPI device ids
    spi: Add support for Zynq Ultrascale+ MPSoC GQSPI controller
    spi: zynq: Add DT bindings documentation for Zynq Ultrascale+ MPSoC GQSPI controller
    spi: fsl-dspi: Use pinctrl PM helpers
    spi: davinci: change the lower limit of pre-scale divider to 1
    spi: spi-fsl-dspi: Change the way of increasing spi_message->actual_length
    spi: spi-fsl-dspi: Enable TCF interrupt mode support
    spi: atmel: add support for the internal chip-select of the spi controller
    spi: spi-pxa2xx: remove legacy PXA DMA bits
    spi: pxa2xx: Make LPSS SPI general register optional
    spi: pxa2xx: Prepare for new Intel LPSS SPI type
    spi: pxa2xx: Differentiate Intel LPSS types
    spi: restore rx/tx_buf in case of unset CONFIG_HAS_DMA
    spi: rspi: Re-do the returning value of qspi_transfer_out_in
    spi: rspi: modify the name of "qspi_trigger_transfer_out_int" function
    spi: orion: Fix extended baud rates for each Armada SoCs
    ...

    Linus Torvalds
     
  • Pull fbdev updates from Tomi Valkeinen:

    - ssd1307fb: various fixes and improvements, SSD1305 support

    - use architecture agnostic functions instead of MTRR functions in
    various fbdev drivers

    - TI DRA7xx SoC display support (arch/arm/ side)

    - OMAPDSS componentization to fix probing order issues

    - OMAPDSS scaling fixes

    - msm_fb: remove obsoleted driver

    * tag 'fbdev-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (77 commits)
    msm: msm_fb: Remove dead code
    OMAPDSS: HDMI: wait for framedone when stopping video
    OMAPDSS: HDMI4: fix error handling
    OMAPDSS: DISPC: scaler debug print
    OMAPDSS: DISPC: do only y decimation on OMAP3
    OMAPDSS: DISPC: check if scaling setup failed
    OMAPDSS: DISPC: fix 64 bit issue in 5-tap
    OMAPDSS: DISPC: fix row_inc for OMAP3
    OMAPDSS: DISPC: add check for scaling limits
    OMAPDSS: DISPC: fix check_horiz_timing_omap3 args
    OMAPDSS: DISPC: fix predecimation for YUV modes
    OMAPDSS: DISPC: work-around for errata i631
    OMAPDSS: simplify submodule reg/unreg code
    OMAPDSS: componentize omapdss
    OMAPDSS: reorder uninit calls
    OMAPDSS: remove uses of __init/__exit
    OMAPDSS: fix dss_init_ports error handling
    OMAPDSS: refactor dss probe function
    OMAPDSS: move 'dss_initialized' to dss driver
    fbdev: propagate result of fb_videomode_from_videomode()
    ...

    Linus Torvalds
     
  • Pull power supply and reset updates from Sebastian Reichel:

    - new charger drivers: BQ24257, BQ25890, AXP288, RT9455

    - MAX17042 battery: add health & temperature support

    - BQ2415x charger: add ACPI support

    - misc fixes and cleanups

    * tag 'for-4.2' of git://git.infradead.org/battery-2.6: (32 commits)
    power_supply: Correct kerneldoc copy paste errors
    wm831x_power: Fix off-by-one at free_irq()
    power_supply: rt9455_charger: Fix error reported by static analysis tool
    power_supply: bq24257: use flags argument of devm_gpiod_get
    power_supply: bq25890: use flags argument of devm_gpiod_get
    sbs-battery: add option to always register battery
    power: Add devm_power_supply_get_by_phandle() helper function
    power_supply: max17042: Add OF support for setting thresholds
    power_supply: sysfs: Bring back write to writeable properties
    power_supply: rt9455_charger: Check if CONFIG_USB_PHY is enabled
    power: reset: gpio-restart: increase priority slightly
    power_supply: bq25890: make chip_id int
    power_supply: Add support for Richtek RT9455 battery charger
    Documentation: devicetree: Add Richtek RT9455 bindings
    of: Add vendor prefix for Richtek Technology Corporation
    power_supply: 88pm860x_charger: Do not call free_irq() twice
    power: bq24190_charger: Change first_time flag reset condition
    power: axp288_charger: axp288 charger driver
    power: max17042_battery: add HEALTH and TEMP_* properties support
    power_supply: Add support for TI BQ25890 charger chip
    ...

    Linus Torvalds
     
  • Pull SCSI updates from James Bottomley:
    "This is the usual grab bag of driver updates (lpfc, hpsa,
    megaraid_sas, cxgbi, be2iscsi) plus an assortment of minor updates.

    There is also one new driver: the Cisco snic. The advansys driver has
    been rewritten to get rid of the warning about converting it to the
    DMA API, the tape statistics patch got in and finally, there's a
    resuffle of SCSI header files to separate more cleanly initiator from
    target mode (and better share the common definitions)"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (156 commits)
    snic: driver for Cisco SCSI HBA
    qla2xxx: Fix indentation
    qla2xxx: Comment out unreachable code
    fusion: remove dead MTRR code
    advansys: fix compilation errors and warnings when CONFIG_PCI is not set
    mptsas: fix depth param in scsi_track_queue_full
    megaraid: fix irq setup process regression
    lpfc: Update version to 10.7.0.0 for upstream patch set.
    lpfc: Fix to drop PLOGIs from fabric node till LOGO processing completes
    lpfc: Fix scsi task management error message.
    lpfc: Fix cq_id masking problem.
    lpfc: Fix scsi prep dma buf error.
    lpfc: Add support for using block multi-queue
    lpfc: Devices are not discovered during takeaway/giveback testing
    lpfc: Fix vport deletion failure.
    lpfc: Check for active portpeerbeacon.
    lpfc: Update driver version for upstream patch set 10.6.0.1.
    lpfc: Change buffer pool empty message to miscellaneous category
    lpfc: Fix incorrect log message reported for empty FCF record.
    lpfc: Fix rport leak.
    ...

    Linus Torvalds
     
  • Pull power management and ACPI updates from Rafael Wysocki:
    "The rework of backlight interface selection API from Hans de Goede
    stands out from the number of commits and the number of affected
    places perspective. The cpufreq core fixes from Viresh Kumar are
    quite significant too as far as the number of commits goes and because
    they should reduce CPU online/offline overhead quite a bit in the
    majority of cases.

    From the new featues point of view, the ACPICA update (to upstream
    revision 20150515) adding support for new ACPI 6 material to ACPICA is
    the one that matters the most as some new significant features will be
    based on it going forward. Also included is an update of the ACPI
    device power management core to follow ACPI 6 (which in turn reflects
    the Windows' device PM implementation), a PM core extension to support
    wakeup interrupts in a more generic way and support for the ACPI _CCA
    device configuration object.

    The rest is mostly fixes and cleanups all over and some documentation
    updates, including new DT bindings for Operating Performance Points.

    There is one fix for a regression introduced in the 4.1 cycle, but it
    adds quite a number of lines of code, it wasn't really ready before
    Thursday and you were on vacation, so I refrained from pushing it on
    the last minute for 4.1.

    Specifics:

    - ACPICA update to upstream revision 20150515 including basic support
    for ACPI 6 features: new ACPI tables introduced by ACPI 6 (STAO,
    XENV, WPBT, NFIT, IORT), changes related to the other tables (DTRM,
    FADT, LPIT, MADT), new predefined names (_BTH, _CR3, _DSD, _LPI,
    _MTL, _PRR, _RDI, _RST, _TFP, _TSN), fixes and cleanups (Bob Moore,
    Lv Zheng).

    - ACPI device power management core code update to follow ACPI 6
    which reflects the ACPI device power management implementation in
    Windows (Rafael J Wysocki).

    - rework of the backlight interface selection logic to reduce the
    number of kernel command line options and improve the handling of
    DMI quirks that may be involved in that and to make the code
    generally more straightforward (Hans de Goede).

    - fixes for the ACPI Embedded Controller (EC) driver related to the
    handling of EC transactions (Lv Zheng).

    - fix for a regression related to the ACPI resources management and
    resulting from a recent change of ACPI initialization code ordering
    (Rafael J Wysocki).

    - fix for a system initialization regression related to ACPI
    introduced during the 3.14 cycle and caused by running the code
    that switches the platform over to the ACPI mode too early in the
    initialization sequence (Rafael J Wysocki).

    - support for the ACPI _CCA device configuration object related to
    DMA cache coherence (Suravee Suthikulpanit).

    - ACPI/APEI fixes and cleanups (Jiri Kosina, Borislav Petkov).

    - ACPI battery driver cleanups (Luis Henriques, Mathias Krause).

    - ACPI processor driver cleanups (Hanjun Guo).

    - cleanups and documentation update related to the ACPI device
    properties interface based on _DSD (Rafael J Wysocki).

    - ACPI device power management fixes (Rafael J Wysocki).

    - assorted cleanups related to ACPI (Dominik Brodowski, Fabian
    Frederick, Lorenzo Pieralisi, Mathias Krause, Rafael J Wysocki).

    - fix for a long-standing issue causing General Protection Faults to
    be generated occasionally on return to user space after resume from
    ACPI-based suspend-to-RAM on 32-bit x86 (Ingo Molnar).

    - fix to make the suspend core code return -EBUSY consistently in all
    cases when system suspend is aborted due to wakeup detection (Ruchi
    Kandoi).

    - support for automated device wakeup IRQ handling allowing drivers
    to make their PM support more starightforward (Tony Lindgren).

    - new tracepoints for suspend-to-idle tracing and rework of the
    prepare/complete callbacks tracing in the PM core (Todd E Brandt,
    Rafael J Wysocki).

    - wakeup sources framework enhancements (Jin Qian).

    - new macro for noirq system PM callbacks (Grygorii Strashko).

    - assorted cleanups related to system suspend (Rafael J Wysocki).

    - cpuidle core cleanups to make the code more efficient (Rafael J
    Wysocki).

    - powernv/pseries cpuidle driver update (Shilpasri G Bhat).

    - cpufreq core fixes related to CPU online/offline that should reduce
    the overhead of these operations quite a bit, unless the CPU in
    question is physically going away (Viresh Kumar, Saravana Kannan).

    - serialization of cpufreq governor callbacks to avoid race
    conditions in some cases (Viresh Kumar).

    - intel_pstate driver fixes and cleanups (Doug Smythies, Prarit
    Bhargava, Joe Konno).

    - cpufreq driver (arm_big_little, cpufreq-dt, qoriq) updates (Sudeep
    Holla, Felipe Balbi, Tang Yuantian).

    - assorted cleanups in cpufreq drivers and core (Shailendra Verma,
    Fabian Frederick, Wang Long).

    - new Device Tree bindings for representing Operating Performance
    Points (Viresh Kumar).

    - updates for the common clock operations support code in the PM core
    (Rajendra Nayak, Geert Uytterhoeven).

    - PM domains core code update (Geert Uytterhoeven).

    - Intel Knights Landing support for the RAPL (Running Average Power
    Limit) power capping driver (Dasaratharaman Chandramouli).

    - fixes related to the floor frequency setting on Atom SoCs in the
    RAPL power capping driver (Ajay Thomas).

    - runtime PM framework documentation update (Ben Dooks).

    - cpupower tool fix (Herton R Krzesinski)"

    * tag 'pm+acpi-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (194 commits)
    cpuidle: powernv/pseries: Auto-promotion of snooze to deeper idle state
    x86: Load __USER_DS into DS/ES after resume
    PM / OPP: Add binding for 'opp-suspend'
    PM / OPP: Allow multiple OPP tables to be passed via DT
    PM / OPP: Add new bindings to address shortcomings of existing bindings
    ACPI: Constify ACPI device IDs in documentation
    ACPI / enumeration: Document the rules regarding the PRP0001 device ID
    ACPI / video: Make acpi_video_unregister_backlight() private
    acpi-video-detect: Remove old API
    toshiba-acpi: Port to new backlight interface selection API
    thinkpad-acpi: Port to new backlight interface selection API
    sony-laptop: Port to new backlight interface selection API
    samsung-laptop: Port to new backlight interface selection API
    msi-wmi: Port to new backlight interface selection API
    msi-laptop: Port to new backlight interface selection API
    intel-oaktrail: Port to new backlight interface selection API
    ideapad-laptop: Port to new backlight interface selection API
    fujitsu-laptop: Port to new backlight interface selection API
    eeepc-laptop: Port to new backlight interface selection API
    dell-wmi: Port to new backlight interface selection API
    ...

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - spurious power/wakeup sysfs files removal for I2C-HID devices, from
    Andrew Duggan

    - Logitech M560 support, from Goffredo Baroncelli

    - a lot of housekeeping cleanups to hid-lg4ff driver, from Michal Maly

    - improved support for Plantronics devices, from Terry Junge

    - Sony Motion Controller and Navigation Controller support and
    subsequent cleanups of hid-sony driver, from Frank Praznik and Simon
    Wood

    - HW support improvements to the Wacom driver, from Jason Gerecke and
    Ping Cheng

    - assorted small cleanups and device ID additions all over the place

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (69 commits)
    HID: cypress: use swap() in cp_report_fixup()
    HID: microsoft: Add Surface Power Cover
    HID: hid-sony: Fix report descriptor for Navigation Controller
    HID: hid-sony: Navigation controller only has 1 LED and no rumble
    HID: hid-sony: Add BT support for Navigation Controller
    HID: wacom: Introduce new 'touch_input' device
    HID: wacom: Split apart 'wacom_setup_pentouch_input_capabilites'
    HID: wacom: Introduce a new WACOM_DEVICETYPE_PAD device_type
    HID: wacom: Treat features->device_type values as flags
    HID: wacom: Simplify 'wacom_update_name'
    HID: rmi: Disable populating F30 when the touchpad has physical buttons
    HID: plantronics: Update to map volume up/down controls
    HID: sony: PS Move fix report descriptor
    HID: sony: PS3 Move enable LEDs and Rumble via BT
    HID: sony: Add support PS3 Move Battery via BT
    HID: sony: Add quirk for MOTION_CONTROLLER_BT
    HID: sony: Support PS3 Move Controller when connected via Bluetooth
    HID: i2c-hid: Do not set the ACPI companion field in the HID device
    usb, HID: Remove Vernier devices from lsusb and hid_ignore_list
    HID: hidpp: Add driver for mouse logitech M560
    ...

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for the v4.2 merge window:

    Enumeration
    - Move pci_ari_enabled() to global header (Alex Williamson)
    - Account for ARI in _PRT lookups (Alex Williamson)
    - Remove unused pci_scan_bus_parented() (Yijing Wang)

    Resource management
    - Use host bridge _CRS info on systems with >32 bit addressing (Bjorn Helgaas)
    - Use host bridge _CRS info on Foxconn K8M890-8237A (Bjorn Helgaas)
    - Fix pci_address_to_pio() conversion of CPU address to I/O port (Zhichang Yuan)
    - Add pci_bus_addr_t (Yinghai Lu)

    PCI device hotplug
    - Wait for pciehp command completion where necessary (Alex Williamson)
    - Drop pointless ACPI-based "slot detection" check (Rafael J. Wysocki)
    - Check ignore_hotplug for all downstream devices (Rafael J. Wysocki)
    - Propagate the "ignore hotplug" setting to parent (Rafael J. Wysocki)
    - Inline pciehp "handle event" functions into the ISR (Bjorn Helgaas)
    - Clean up pciehp debug logging (Bjorn Helgaas)

    Power management
    - Remove redundant PCIe port type checking (Yijing Wang)
    - Add dev->has_secondary_link to track downstream PCIe links (Yijing Wang)
    - Use dev->has_secondary_link to find downstream links for ASPM (Yijing Wang)
    - Drop __pci_disable_link_state() useless "force" parameter (Bjorn Helgaas)
    - Simplify Clock Power Management setting (Bjorn Helgaas)

    Virtualization
    - Add ACS quirks for Intel 9-series PCH root ports (Alex Williamson)
    - Add function 1 DMA alias quirk for Marvell 9120 (Sakari Ailus)

    MSI
    - Disable MSI at enumeration even if kernel doesn't support MSI (Michael S. Tsirkin)
    - Remove unused pci_msi_off() (Bjorn Helgaas)
    - Rename msi_set_enable(), msix_clear_and_set_ctrl() (Michael S. Tsirkin)
    - Export pci_msi_set_enable(), pci_msix_clear_and_set_ctrl() (Michael S. Tsirkin)
    - Drop pci_msi_off() calls during probe (Michael S. Tsirkin)

    APM X-Gene host bridge driver
    - Add APM X-Gene v1 PCIe MSI/MSIX termination driver (Duc Dang)
    - Add APM X-Gene PCIe MSI DTS nodes (Duc Dang)
    - Disable Configuration Request Retry Status for v1 silicon (Duc Dang)
    - Allow config access to Root Port even when link is down (Duc Dang)

    Broadcom iProc host bridge driver
    - Allow override of device tree IRQ mapping function (Hauke Mehrtens)
    - Add BCMA PCIe driver (Hauke Mehrtens)
    - Directly add PCI resources (Hauke Mehrtens)
    - Free resource list after registration (Hauke Mehrtens)

    Freescale i.MX6 host bridge driver
    - Add speed change timeout message (Troy Kisky)
    - Rename imx6_pcie_start_link() to imx6_pcie_establish_link() (Bjorn Helgaas)

    Freescale Layerscape host bridge driver
    - Use dw_pcie_link_up() consistently (Bjorn Helgaas)
    - Factor out ls_pcie_establish_link() (Bjorn Helgaas)

    Marvell MVEBU host bridge driver
    - Remove mvebu_pcie_scan_bus() (Yijing Wang)

    NVIDIA Tegra host bridge driver
    - Remove tegra_pcie_scan_bus() (Yijing Wang)

    Synopsys DesignWare host bridge driver
    - Consolidate outbound iATU programming functions (Jisheng Zhang)
    - Use iATU0 for cfg and IO, iATU1 for MEM (Jisheng Zhang)
    - Add support for x8 links (Zhou Wang)
    - Wait for link to come up with consistent style (Bjorn Helgaas)
    - Use pci_scan_root_bus() for simplicity (Yijing Wang)

    TI DRA7xx host bridge driver
    - Use dw_pcie_link_up() consistently (Bjorn Helgaas)

    Miscellaneous
    - Include , not (Bjorn Helgaas)
    - Remove unnecessary #includes of (Bjorn Helgaas)
    - Remove unused pcibios_select_root() (again) (Bjorn Helgaas)
    - Remove unused pci_dma_burst_advice() (Bjorn Helgaas)
    - xen/pcifront: Don't use deprecated function pci_scan_bus_parented() (Arnd Bergmann)"

    * tag 'pci-v4.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (58 commits)
    PCI: pciehp: Inline the "handle event" functions into the ISR
    PCI: pciehp: Rename queue_interrupt_event() to pciehp_queue_interrupt_event()
    PCI: pciehp: Make queue_interrupt_event() void
    PCI: xgene: Allow config access to Root Port even when link is down
    PCI: xgene: Disable Configuration Request Retry Status for v1 silicon
    PCI: pciehp: Clean up debug logging
    x86/PCI: Use host bridge _CRS info on systems with >32 bit addressing
    PCI: imx6: Add #define PCIE_RC_LCSR
    PCI: imx6: Use "u32", not "uint32_t"
    PCI: Remove unused pci_scan_bus_parented()
    xen/pcifront: Don't use deprecated function pci_scan_bus_parented()
    PCI: imx6: Add speed change timeout message
    PCI/ASPM: Simplify Clock Power Management setting
    PCI: designware: Wait for link to come up with consistent style
    PCI: layerscape: Factor out ls_pcie_establish_link()
    PCI: layerscape: Use dw_pcie_link_up() consistently
    PCI: dra7xx: Use dw_pcie_link_up() consistently
    x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A
    PCI: pciehp: Wait for hotplug command completion where necessary
    PCI: Remove unused pci_dma_burst_advice()
    ...

    Linus Torvalds
     
  • …t/groeck/linux-staging

    Pull hwmon updates from Guenter Roeck:

    - new driver for Microchip TC74

    - support for ncpXXwf104 added to ntc_thermistor driver

    - minor cleanup

    * tag 'hwmon-for-linus-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: add driver for Microchip TC74
    hwmon: (ntc_thermistor) Improve precision of resistance calculation
    hwmon: (ntc_thermistor) fix iio raw to microvolts conversion
    hwmon: (atxp1) Drop auto-detection
    hwmon: (atxp1) Drop FSF mailing address
    hwmon: Allow compile test of GPIO consumers if !GPIOLIB
    hwmon: (sht15) Constify platform_device_id
    hwmon: (max197) Constify platform_device_id
    hwmon: (ntc_thermistor) Add support for ncpXXwf104

    Linus Torvalds
     
  • Pull MMC updates from Ulf Hansson:
    "Here are the changes for MMC for v4.2.

    MMC core:
    - Fix an error path in the mmc block layer
    - Fix PM domain attachment for the SDIO bus
    - Add support for driver strength selection
    - Increase a delay to let voltage stabilize
    - Add support for disabling write-protect detection
    - Add facility to support re-tuning
    - Re-tune and retry in the recovery path
    - Add reset option for SDIO
    - Consolidations and clean-ups

    MMC host:
    - Add Mediatek MMC driver
    - Constify platform_device_id for a couple of hosts
    - Fix modalias to make module auto-loading work for a couple of hosts
    - sdhci: Add support for sdhci-arasan4.9a
    - sdhci: Fix low memory corruption
    - sdhci: Restore behavior while creating OCR mask
    - sdhci: Add a callback to select drive strength
    - sdhci: Fix driver type B and D handling
    - sdhci: Add support for drive strength selection for SPT
    - sdhci: Enable HS400 for some Intel host controllers
    - sdhci: Convert to use the new re-tuning facility
    - sdhci: Various minor fixes and clean-ups
    - dw_mmc: Add support for hi6220
    - dw_mmc: Use core to handle absent write protect line
    - dw_mmc: Add support to switch voltage
    - tmio: Some fixes and modernizations
    - sh_mmcif: Improve clock rate calculation"

    * tag 'mmc-v4.2' of git://git.linaro.org/people/ulf.hansson/mmc: (98 commits)
    mmc: queue: prevent soft lockups on PREEMPT=n
    mmc: mediatek: Add PM support for MMC driver
    mmc: mediatek: Add Mediatek MMC driver
    mmc: dt-bindings: add Mediatek MMC bindings
    mmc: card: Fixup request missing in mmc_blk_issue_rw_rq
    mmc: sdhci: fix low memory corruption
    mmc: sdhci-pci: Change AMD SDHCI quirk application scope
    i2c-piix4: Use Macro for AMD CZ SMBus device ID
    pci_ids: Add AMD KERNCZ device ID support
    mmc: queue: use swap() in mmc_queue_thread()
    mmc: dw_mmc: insmod followed by rmmod will hung for eMMC
    mmc: sdhci: Restore behavior while creating OCR mask
    mmc: sdhci-pxav3: fix device wakeup initialization
    mmc: core: Attach PM domain prior probing of SDIO func driver
    mmc: core: Remove redundant ->power_restore() callback for SD
    mmc: core: Remove redundant ->power_restore() callback for MMC
    mmc: sdhci-bcm2835: Actually enable the clock
    mmc: sdhci-bcm2835: Clean up platform allocations if sdhci init fails.
    mmc: sdhci-of-esdhc: enable interrupt mode to detect card
    mmc: sdhci-esdhc-imx: add quirk SDHCI_QUIRK2_BROKEN_HS200 for imx6qdl
    ...

    Linus Torvalds
     
  • Pull gpio updates from Linus Walleij:
    "This is the big bulk of GPIO changes queued for the v4.2 kernel
    series:

    - a big set of cleanups to the aged sysfs interface from Johan
    Hovold. To get these in, v4.1-rc3 was merged into the tree as the
    first patch in that series had to go into stable. This makes the
    locking much more fine-grained (get rid of the "big GPIO lock(s)"
    and store states in the GPIO descriptors.

    - rename gpiod_[g|s]et_array() to gpiod_[g|s]et_array_value() to
    avoid confusions.

    - New drivers for:
    * NXP LPC18xx (currently LPC1850)
    * NetLogic XLP
    * Broadcom STB SoC's
    * Axis ETRAXFS
    * Zynq Ultrascale+ (subdriver)

    - ACPI:
    * make it possible to retrieve GpioInt resources from a GPIO
    device using acpi_dev_gpio_irq_get()
    * merge some dependent I2C changes exploiting this.
    * support the ARM X-Gene GPIO standby driver.

    - make it possible for the generic GPIO driver to read back the value
    set registers to reflect current status.

    - loads of OMAP IRQ handling fixes.

    - incremental improvements to Kona, max732x, OMAP, MXC, RCAR,
    PCA953x, STP-XWAY, PCF857x, Crystalcove, TB10x.

    - janitorial (constification, checkpatch cleanups)"

    * tag 'gpio-v4.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (71 commits)
    gpio: Fix checkpatch.pl issues
    gpio: pcf857x: handle only enabled irqs
    gpio / ACPI: Return -EPROBE_DEFER if the gpiochip was not found
    GPIO / ACPI: export acpi_gpiochip_request(free)_interrupts for module use
    gpio: improve error reporting on own descriptors
    gpio: promote own request failure to pr_err()
    gpio: Added support to Zynq Ultrascale+ MPSoC
    gpio: add ETRAXFS GPIO driver
    fix documentation after renaming gpiod_set_array to gpiod_set_array_value
    gpio: Add GPIO support for Broadcom STB SoCs
    gpio: xgene: add ACPI support for APM X-Gene GPIO standby driver
    gpio: tb10x: Drop unneeded free_irq() call
    gpio: crystalcove: set IRQCHIP_SKIP_SET_WAKE for the irqchip
    gpio: stp-xway: Use the of_property_read_u32 helper
    gpio: pcf857x: Check for irq_set_irq_wake() failures
    gpio-stp-xway: Fix enabling the highest bit of the PHY LEDs
    gpio: Prevent an integer overflow in the pca953x driver
    gpio: omap: rework omap_gpio_irq_startup to handle current pin state properly
    gpio: omap: rework omap_gpio_request to touch only gpio specific registers
    gpio: omap: rework omap_x_irq_shutdown to touch only irqs specific registers
    ...

    Linus Torvalds
     

23 Jun, 2015

11 commits

  • Pull crypto update from Herbert Xu:
    "Here is the crypto update for 4.2:

    API:

    - Convert RNG interface to new style.

    - New AEAD interface with one SG list for AD and plain/cipher text.
    All external AEAD users have been converted.

    - New asymmetric key interface (akcipher).

    Algorithms:

    - Chacha20, Poly1305 and RFC7539 support.

    - New RSA implementation.

    - Jitter RNG.

    - DRBG is now seeded with both /dev/random and Jitter RNG. If kernel
    pool isn't ready then DRBG will be reseeded when it is.

    - DRBG is now the default crypto API RNG, replacing krng.

    - 842 compression (previously part of powerpc nx driver).

    Drivers:

    - Accelerated SHA-512 for arm64.

    - New Marvell CESA driver that supports DMA and more algorithms.

    - Updated powerpc nx 842 support.

    - Added support for SEC1 hardware to talitos"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (292 commits)
    crypto: marvell/cesa - remove COMPILE_TEST dependency
    crypto: algif_aead - Temporarily disable all AEAD algorithms
    crypto: af_alg - Forbid the use internal algorithms
    crypto: echainiv - Only hold RNG during initialisation
    crypto: seqiv - Add compatibility support without RNG
    crypto: eseqiv - Offer normal cipher functionality without RNG
    crypto: chainiv - Offer normal cipher functionality without RNG
    crypto: user - Add CRYPTO_MSG_DELRNG
    crypto: user - Move cryptouser.h to uapi
    crypto: rng - Do not free default RNG when it becomes unused
    crypto: skcipher - Allow givencrypt to be NULL
    crypto: sahara - propagate the error on clk_disable_unprepare() failure
    crypto: rsa - fix invalid select for AKCIPHER
    crypto: picoxcell - Update to the current clk API
    crypto: nx - Check for bogus firmware properties
    crypto: marvell/cesa - add DT bindings documentation
    crypto: marvell/cesa - add support for Kirkwood and Dove SoCs
    crypto: marvell/cesa - add support for Orion SoCs
    crypto: marvell/cesa - add allhwsupport module parameter
    crypto: marvell/cesa - add support for all armada SoCs
    ...

    Linus Torvalds
     
  • Pull irq updates from Thomas Gleixner:
    "The irq departement delivers:

    - plug a potential race related to chained interrupt handlers

    - core updates which address the needs of the x86 irqdomain conversion

    - new irqchip callback to support affinity settings for VCPUs

    - the usual pile of updates to interrupt chip drivers

    - a few helper functions to allow further cleanups and
    simplifications

    I have a largish pile of coccinelle scripted/verified cleanups and
    simplifications pending on top of that, but I prefer to send that
    towards the end of the merge window when the arch/driver changes have
    hit your tree to avoid API change wreckage as far as possible"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    genirq: Remove bogus restriction in irq_move_mask_irq()
    irqchip: atmel-aic5: Add sama5d2 support
    irq: spear-shirq: Fix race in installing chained IRQ handler
    irq: irq-keystone: Fix race in installing chained IRQ handler
    gpio: gpio-tegra: Fix race in installing chained IRQ handler
    gpio: gpio-mxs: Fix race in installing chained IRQ handler
    gpio: gpio-mxc: Fix race in installing chained IRQ handler
    ARM: gemini: Fix race in installing GPIO chained IRQ handler
    GPU: ipu: Fix race in installing IPU chained IRQ handler
    ARM: sa1100: convert SA11x0 related code to use new chained handler helper
    irq: Add irq_set_chained_handler_and_data()
    irqchip: exynos-combiner: Save IRQ enable set on suspend
    genirq: Introduce helper function irq_data_get_affinity_mask()
    genirq: Introduce helper function irq_data_get_node()
    genirq: Introduce struct irq_common_data to host shared irq data
    genirq: Prevent crash in irq_move_irq()
    genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain
    irqchip: gic: Simplify gic_configure_irq by using IRQCHIP_SET_TYPE_MASKED
    irqchip: renesas: intc-irqpin: Improve binding documentation
    genirq: Set IRQCHIP_SKIP_SET_WAKE for no_irq_chip
    ...

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "A rather largish update for everything time and timer related:

    - Cache footprint optimizations for both hrtimers and timer wheel

    - Lower the NOHZ impact on systems which have NOHZ or timer migration
    disabled at runtime.

    - Optimize run time overhead of hrtimer interrupt by making the clock
    offset updates smarter

    - hrtimer cleanups and removal of restrictions to tackle some
    problems in sched/perf

    - Some more leap second tweaks

    - Another round of changes addressing the 2038 problem

    - First step to change the internals of clock event devices by
    introducing the necessary infrastructure

    - Allow constant folding for usecs/msecs_to_jiffies()

    - The usual pile of clockevent/clocksource driver updates

    The hrtimer changes contain updates to sched, perf and x86 as they
    depend on them plus changes all over the tree to cleanup API changes
    and redundant code, which got copied all over the place. The y2038
    changes touch s390 to remove the last non 2038 safe code related to
    boot/persistant clock"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (114 commits)
    clocksource: Increase dependencies of timer-stm32 to limit build wreckage
    timer: Minimize nohz off overhead
    timer: Reduce timer migration overhead if disabled
    timer: Stats: Simplify the flags handling
    timer: Replace timer base by a cpu index
    timer: Use hlist for the timer wheel hash buckets
    timer: Remove FIFO "guarantee"
    timers: Sanitize catchup_timer_jiffies() usage
    hrtimer: Allow hrtimer::function() to free the timer
    seqcount: Introduce raw_write_seqcount_barrier()
    seqcount: Rename write_seqcount_barrier()
    hrtimer: Fix hrtimer_is_queued() hole
    hrtimer: Remove HRTIMER_STATE_MIGRATE
    selftest: Timers: Avoid signal deadlock in leap-a-day
    timekeeping: Copy the shadow-timekeeper over the real timekeeper last
    clockevents: Check state instead of mode in suspend/resume path
    selftests: timers: Add leap-second timer edge testing to leap-a-day.c
    ntp: Do leapsecond adjustment in adjtimex read path
    time: Prevent early expiry of hrtimers[CLOCK_REALTIME] at the leap second edge
    ntp: Introduce and use SECS_PER_DAY macro instead of 86400
    ...

    Linus Torvalds
     
  • Pull x86 core updates from Ingo Molnar:
    "There were so many changes in the x86/asm, x86/apic and x86/mm topics
    in this cycle that the topical separation of -tip broke down somewhat -
    so the result is a more traditional architecture pull request,
    collected into the 'x86/core' topic.

    The topics were still maintained separately as far as possible, so
    bisectability and conceptual separation should still be pretty good -
    but there were a handful of merge points to avoid excessive
    dependencies (and conflicts) that would have been poorly tested in the
    end.

    The next cycle will hopefully be much more quiet (or at least will
    have fewer dependencies).

    The main changes in this cycle were:

    * x86/apic changes, with related IRQ core changes: (Jiang Liu, Thomas
    Gleixner)

    - This is the second and most intrusive part of changes to the x86
    interrupt handling - full conversion to hierarchical interrupt
    domains:

    [IOAPIC domain] -----
    |
    [MSI domain] --------[Remapping domain] ----- [ Vector domain ]
    | (optional) |
    [HPET MSI domain] ----- |
    |
    [DMAR domain] -----------------------------
    |
    [Legacy domain] -----------------------------

    This now reflects the actual hardware and allowed us to distangle
    the domain specific code from the underlying parent domain, which
    can be optional in the case of interrupt remapping. It's a clear
    separation of functionality and removes quite some duct tape
    constructs which plugged the remap code between ioapic/msi/hpet
    and the vector management.

    - Intel IOMMU IRQ remapping enhancements, to allow direct interrupt
    injection into guests (Feng Wu)

    * x86/asm changes:

    - Tons of cleanups and small speedups, micro-optimizations. This
    is in preparation to move a good chunk of the low level entry
    code from assembly to C code (Denys Vlasenko, Andy Lutomirski,
    Brian Gerst)

    - Moved all system entry related code to a new home under
    arch/x86/entry/ (Ingo Molnar)

    - Removal of the fragile and ugly CFI dwarf debuginfo annotations.
    Conversion to C will reintroduce many of them - but meanwhile
    they are only getting in the way, and the upstream kernel does
    not rely on them (Ingo Molnar)

    - NOP handling refinements. (Borislav Petkov)

    * x86/mm changes:

    - Big PAT and MTRR rework: making the code more robust and
    preparing to phase out exposing direct MTRR interfaces to drivers -
    in favor of using PAT driven interfaces (Toshi Kani, Luis R
    Rodriguez, Borislav Petkov)

    - New ioremap_wt()/set_memory_wt() interfaces to support
    Write-Through cached memory mappings. This is especially
    important for good performance on NVDIMM hardware (Toshi Kani)

    * x86/ras changes:

    - Add support for deferred errors on AMD (Aravind Gopalakrishnan)

    This is an important RAS feature which adds hardware support for
    poisoned data. That means roughly that the hardware marks data
    which it has detected as corrupted but wasn't able to correct, as
    poisoned data and raises an APIC interrupt to signal that in the
    form of a deferred error. It is the OS's responsibility then to
    take proper recovery action and thus prolonge system lifetime as
    far as possible.

    - Add support for Intel "Local MCE"s: upcoming CPUs will support
    CPU-local MCE interrupts, as opposed to the traditional system-
    wide broadcasted MCE interrupts (Ashok Raj)

    - Misc cleanups (Borislav Petkov)

    * x86/platform changes:

    - Intel Atom SoC updates

    ... and lots of other cleanups, fixlets and other changes - see the
    shortlog and the Git log for details"

    * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (222 commits)
    x86/hpet: Use proper hpet device number for MSI allocation
    x86/hpet: Check for irq==0 when allocating hpet MSI interrupts
    x86/mm/pat, drivers/infiniband/ipath: Use arch_phys_wc_add() and require PAT disabled
    x86/mm/pat, drivers/media/ivtv: Use arch_phys_wc_add() and require PAT disabled
    x86/platform/intel/baytrail: Add comments about why we disabled HPET on Baytrail
    genirq: Prevent crash in irq_move_irq()
    genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain
    iommu, x86: Properly handle posted interrupts for IOMMU hotplug
    iommu, x86: Provide irq_remapping_cap() interface
    iommu, x86: Setup Posted-Interrupts capability for Intel iommu
    iommu, x86: Add cap_pi_support() to detect VT-d PI capability
    iommu, x86: Avoid migrating VT-d posted interrupts
    iommu, x86: Save the mode (posted or remapped) of an IRTE
    iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip
    iommu: dmar: Provide helper to copy shared irte fields
    iommu: dmar: Extend struct irte for VT-d Posted-Interrupts
    iommu: Add new member capability to struct irq_remap_ops
    x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code
    x86/asm/entry/32: Shorten __audit_syscall_entry() args preparation
    x86/asm/entry/32: Explain reloading of registers after __audit_syscall_entry()
    ...

    Linus Torvalds
     
  • Pull x86 FPU updates from Ingo Molnar:
    "This tree contains two main changes:

    - The big FPU code rewrite: wide reaching cleanups and reorganization
    that pulls all the FPU code together into a clean base in
    arch/x86/fpu/.

    The resulting code is leaner and faster, and much easier to
    understand. This enables future work to further simplify the FPU
    code (such as removing lazy FPU restores).

    By its nature these changes have a substantial regression risk: FPU
    code related bugs are long lived, because races are often subtle
    and bugs mask as user-space failures that are difficult to track
    back to kernel side backs. I'm aware of no unfixed (or even
    suspected) FPU related regression so far.

    - MPX support rework/fixes. As this is still not a released CPU
    feature, there were some buglets in the code - should be much more
    robust now (Dave Hansen)"

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (250 commits)
    x86/fpu: Fix double-increment in setup_xstate_features()
    x86/mpx: Allow 32-bit binaries on 64-bit kernels again
    x86/mpx: Do not count MPX VMAs as neighbors when unmapping
    x86/mpx: Rewrite the unmap code
    x86/mpx: Support 32-bit binaries on 64-bit kernels
    x86/mpx: Use 32-bit-only cmpxchg() for 32-bit apps
    x86/mpx: Introduce new 'directory entry' to 'addr' helper function
    x86/mpx: Add temporary variable to reduce masking
    x86: Make is_64bit_mm() widely available
    x86/mpx: Trace allocation of new bounds tables
    x86/mpx: Trace the attempts to find bounds tables
    x86/mpx: Trace entry to bounds exception paths
    x86/mpx: Trace #BR exceptions
    x86/mpx: Introduce a boot-time disable flag
    x86/mpx: Restrict the mmap() size check to bounds tables
    x86/mpx: Remove redundant MPX_BNDCFG_ADDR_MASK
    x86/mpx: Clean up the code by not passing a task pointer around when unnecessary
    x86/mpx: Use the new get_xsave_field_ptr()API
    x86/fpu/xstate: Wrap get_xsave_addr() to make it safer
    x86/fpu/xstate: Fix up bad get_xsave_addr() assumptions
    ...

    Linus Torvalds
     
  • Pull x86 EFI updates from Ingo Molnar:
    "EFI changes:

    - Use idiomatic negative error values in efivar_create_sysfs_entry()
    instead of returning '1' to indicate error (Dan Carpenter)

    - Implement new support to expose the EFI System Resource Tables in
    sysfs, which provides information for performing firmware updates
    (Peter Jones)

    - Documentation cleanup in the EFI handover protocol section which
    falsely claimed that 'cmdline_size' needed to be filled out by the
    boot loader (Alex Smith)

    - Align the order of SMBIOS tables in /sys/firmware/efi/systab to
    match the way that we do things for ACPI and add documentation to
    Documentation/ABI (Jean Delvare)"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Work around ia64 build problem with ESRT driver
    efi: Add 'systab' information to Documentation/ABI
    efi: dmi: List SMBIOS3 table before SMBIOS table
    efi/esrt: Fix some compiler warnings
    x86, doc: Remove cmdline_size from list of fields to be filled in for EFI handover
    efi: Add esrt support
    efi: efivar_create_sysfs_entry() should return negative error codes

    Linus Torvalds
     
  • Pull x86 debugging documentation updates from Ingo Molnar:
    "Documentation updates about x86 kernel stacks"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/Documentation: Adapt Ingo's explanation on printing backtraces
    x86/Documentation: Remove STACKFAULT_STACK bulletpoint
    x86/Documentation: Move kernel-stacks doc one level up

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:
    "The main changes are:

    - lockless wakeup support for futexes and IPC message queues
    (Davidlohr Bueso, Peter Zijlstra)

    - Replace spinlocks with atomics in thread_group_cputimer(), to
    improve scalability (Jason Low)

    - NUMA balancing improvements (Rik van Riel)

    - SCHED_DEADLINE improvements (Wanpeng Li)

    - clean up and reorganize preemption helpers (Frederic Weisbecker)

    - decouple page fault disabling machinery from the preemption
    counter, to improve debuggability and robustness (David
    Hildenbrand)

    - SCHED_DEADLINE documentation updates (Luca Abeni)

    - topology CPU masks cleanups (Bartosz Golaszewski)

    - /proc/sched_debug improvements (Srikar Dronamraju)"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
    sched/deadline: Remove needless parameter in dl_runtime_exceeded()
    sched: Remove superfluous resetting of the p->dl_throttled flag
    sched/deadline: Drop duplicate init_sched_dl_class() declaration
    sched/deadline: Reduce rq lock contention by eliminating locking of non-feasible target
    sched/deadline: Make init_sched_dl_class() __init
    sched/deadline: Optimize pull_dl_task()
    sched/preempt: Add static_key() to preempt_notifiers
    sched/preempt: Fix preempt notifiers documentation about hlist_del() within unsafe iteration
    sched/stop_machine: Fix deadlock between multiple stop_two_cpus()
    sched/debug: Add sum_sleep_runtime to /proc//sched
    sched/debug: Replace vruntime with wait_sum in /proc/sched_debug
    sched/debug: Properly format runnable tasks in /proc/sched_debug
    sched/numa: Only consider less busy nodes as numa balancing destinations
    Revert 095bebf61a46 ("sched/numa: Do not move past the balance point if unbalanced")
    sched/fair: Prevent throttling in early pick_next_task_fair()
    preempt: Reorganize the notrace definitions a bit
    preempt: Use preempt_schedule_context() as the official tracing preemption point
    sched: Make preempt_schedule_context() function-tracing safe
    x86: Remove cpu_sibling_mask() and cpu_core_mask()
    x86: Replace cpu_**_mask() with topology_**_cpumask()
    ...

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "The main changes are:

    - 'qspinlock' support, enabled on x86: queued spinlocks - these are
    now the spinlock variant used by x86 as they outperform ticket
    spinlocks in every category. (Waiman Long)

    - 'pvqspinlock' support on x86: paravirtualized variant of queued
    spinlocks. (Waiman Long, Peter Zijlstra)

    - 'qrwlock' support, enabled on x86: queued rwlocks. Similar to
    queued spinlocks, they are now the variant used by x86:

    CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
    CONFIG_QUEUED_SPINLOCKS=y
    CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
    CONFIG_QUEUED_RWLOCKS=y

    - various lockdep fixlets

    - various locking primitives cleanups, further WRITE_ONCE()
    propagation"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    locking/lockdep: Remove hard coded array size dependency
    locking/qrwlock: Don't contend with readers when setting _QW_WAITING
    lockdep: Do not break user-visible string
    locking/arch: Rename set_mb() to smp_store_mb()
    locking/arch: Add WRITE_ONCE() to set_mb()
    rtmutex: Warn if trylock is called from hard/softirq context
    arch: Remove __ARCH_HAVE_CMPXCHG
    locking/rtmutex: Drop usage of __HAVE_ARCH_CMPXCHG
    locking/qrwlock: Rename QUEUE_RWLOCK to QUEUED_RWLOCKS
    locking/pvqspinlock: Rename QUEUED_SPINLOCK to QUEUED_SPINLOCKS
    locking/pvqspinlock: Replace xchg() by the more descriptive set_mb()
    locking/pvqspinlock, x86: Enable PV qspinlock for Xen
    locking/pvqspinlock, x86: Enable PV qspinlock for KVM
    locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching
    locking/pvqspinlock: Implement simple paravirt support for the qspinlock
    locking/qspinlock: Revert to test-and-set on hypervisors
    locking/qspinlock: Use a simple write to grab the lock
    locking/qspinlock: Optimize for smaller NR_CPUS
    locking/qspinlock: Extract out code snippets for the next patch
    locking/qspinlock: Add pending bit
    ...

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:

    - Continued initialization/Kconfig updates: hide most Kconfig options
    from unsuspecting users.

    There's now a single high level configuration option:

    *
    * RCU Subsystem
    *
    Make expert-level adjustments to RCU configuration (RCU_EXPERT) [N/y/?] (NEW)

    Which if answered in the negative, leaves us with a single
    interactive configuration option:

    Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW)

    All the rest of the RCU options are configured automatically. Later
    on we'll remove this single leftover configuration option as well.

    - Remove all uses of RCU-protected array indexes: replace the
    rcu_[access|dereference]_index_check() APIs with READ_ONCE() and
    rcu_lockdep_assert()

    - RCU CPU-hotplug cleanups

    - Updates to Tiny RCU: a race fix and further code shrinkage.

    - RCU torture-testing updates: fixes, speedups, cleanups and
    documentation updates.

    - Miscellaneous fixes

    - Documentation updates

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
    rcutorture: Allow repetition factors in Kconfig-fragment lists
    rcutorture: Display "make oldconfig" errors
    rcutorture: Update TREE_RCU-kconfig.txt
    rcutorture: Make rcutorture scripts force RCU_EXPERT
    rcutorture: Update configuration fragments for rcutree.rcu_fanout_exact
    rcutorture: TASKS_RCU set directly, so don't explicitly set it
    rcutorture: Test SRCU cleanup code path
    rcutorture: Replace barriers with smp_store_release() and smp_load_acquire()
    locktorture: Change longdelay_us to longdelay_ms
    rcutorture: Allow negative values of nreaders to oversubscribe
    rcutorture: Exchange TREE03 and TREE08 NR_CPUS, speed up CPU hotplug
    rcutorture: Exchange TREE03 and TREE04 geometries
    locktorture: fix deadlock in 'rw_lock_irq' type
    rcu: Correctly handle non-empty Tiny RCU callback list with none ready
    rcutorture: Test both RCU-sched and RCU-bh for Tiny RCU
    rcu: Further shrink Tiny RCU by making empty functions static inlines
    rcu: Conditionally compile RCU's eqs warnings
    rcu: Remove prompt for RCU implementation
    rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO
    rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF
    ...

    Linus Torvalds
     
  • Pull vfs updates from Al Viro:
    "In this pile: pathname resolution rewrite.

    - recursion in link_path_walk() is gone.

    - nesting limits on symlinks are gone (the only limit remaining is
    that the total amount of symlinks is no more than 40, no matter how
    nested).

    - "fast" (inline) symlinks are handled without leaving rcuwalk mode.

    - stack footprint (independent of the nesting) is below kilobyte now,
    about on par with what it used to be with one level of nested
    symlinks and ~2.8 times lower than it used to be in the worst case.

    - struct nameidata is entirely private to fs/namei.c now (not even
    opaque pointers are being passed around).

    - ->follow_link() and ->put_link() calling conventions had been
    changed; all in-tree filesystems converted, out-of-tree should be
    able to follow reasonably easily.

    For out-of-tree conversions, see Documentation/filesystems/porting
    for details (and in-tree filesystems for examples of conversion).

    That has sat in -next since mid-May, seems to survive all testing
    without regressions and merges clean with v4.1"

    * 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (131 commits)
    turn user_{path_at,path,lpath,path_dir}() into static inlines
    namei: move saved_nd pointer into struct nameidata
    inline user_path_create()
    inline user_path_parent()
    namei: trim do_last() arguments
    namei: stash dfd and name into nameidata
    namei: fold path_cleanup() into terminate_walk()
    namei: saner calling conventions for filename_parentat()
    namei: saner calling conventions for filename_create()
    namei: shift nameidata down into filename_parentat()
    namei: make filename_lookup() reject ERR_PTR() passed as name
    namei: shift nameidata inside filename_lookup()
    namei: move putname() call into filename_lookup()
    namei: pass the struct path to store the result down into path_lookupat()
    namei: uninline set_root{,_rcu}()
    namei: be careful with mountpoint crossings in follow_dotdot_rcu()
    Documentation: remove outdated information from automount-support.txt
    get rid of assorted nameidata-related debris
    lustre: kill unused helper
    lustre: kill unused macro (LOOKUP_CONTINUE)
    ...

    Linus Torvalds
     

22 Jun, 2015

10 commits