06 Nov, 2015

22 commits

  • Pull sparc updates from David Miller:
    "Just a couple of fixes/cleanups:

    - Correct NUMA latency calculations on sparc64, from Nitin Gupta.

    - ASI_ST_BLKINIT_MRU_S value was wrong, from Rob Gardner.

    - Fix non-faulting load handling of non-quad values, also from Rob
    Gardner.

    - Cleanup VISsave assembler, from Sam Ravnborg.

    - Fix iommu-common code so it doesn't emit rediculous warnings on
    some architectures, particularly ARM"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Fix numa distance values
    sparc64: Don't restrict fp regs for no-fault loads
    iommu-common: Fix error code used in iommu_tbl_range_{alloc,free}().
    sparc64: use ENTRY/ENDPROC in VISsave
    sparc64: Fix incorrect ASI_ST_BLKINIT_MRU_S value

    Linus Torvalds
     
  • Pull KVM updates from Paolo Bonzini:
    "First batch of KVM changes for 4.4.

    s390:
    A bunch of fixes and optimizations for interrupt and time handling.

    PPC:
    Mostly bug fixes.

    ARM:
    No big features, but many small fixes and prerequisites including:

    - a number of fixes for the arch-timer

    - introducing proper level-triggered semantics for the arch-timers

    - a series of patches to synchronously halt a guest (prerequisite
    for IRQ forwarding)

    - some tracepoint improvements

    - a tweak for the EL2 panic handlers

    - some more VGIC cleanups getting rid of redundant state

    x86:
    Quite a few changes:

    - support for VT-d posted interrupts (i.e. PCI devices can inject
    interrupts directly into vCPUs). This introduces a new
    component (in virt/lib/) that connects VFIO and KVM together.
    The same infrastructure will be used for ARM interrupt
    forwarding as well.

    - more Hyper-V features, though the main one Hyper-V synthetic
    interrupt controller will have to wait for 4.5. These will let
    KVM expose Hyper-V devices.

    - nested virtualization now supports VPID (same as PCID but for
    vCPUs) which makes it quite a bit faster

    - for future hardware that supports NVDIMM, there is support for
    clflushopt, clwb, pcommit

    - support for "split irqchip", i.e. LAPIC in kernel +
    IOAPIC/PIC/PIT in userspace, which reduces the attack surface of
    the hypervisor

    - obligatory smattering of SMM fixes

    - on the guest side, stable scheduler clock support was rewritten
    to not require help from the hypervisor"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (123 commits)
    KVM: VMX: Fix commit which broke PML
    KVM: x86: obey KVM_X86_QUIRK_CD_NW_CLEARED in kvm_set_cr0()
    KVM: x86: allow RSM from 64-bit mode
    KVM: VMX: fix SMEP and SMAP without EPT
    KVM: x86: move kvm_set_irq_inatomic to legacy device assignment
    KVM: device assignment: remove pointless #ifdefs
    KVM: x86: merge kvm_arch_set_irq with kvm_set_msi_inatomic
    KVM: x86: zero apic_arb_prio on reset
    drivers/hv: share Hyper-V SynIC constants with userspace
    KVM: x86: handle SMBASE as physical address in RSM
    KVM: x86: add read_phys to x86_emulate_ops
    KVM: x86: removing unused variable
    KVM: don't pointlessly leave KVM_COMPAT=y in non-KVM configs
    KVM: arm/arm64: Merge vgic_set_lr() and vgic_sync_lr_elrsr()
    KVM: arm/arm64: Clean up vgic_retire_lr() and surroundings
    KVM: arm/arm64: Optimize away redundant LR tracking
    KVM: s390: use simple switch statement as multiplexer
    KVM: s390: drop useless newline in debugging data
    KVM: s390: SCA must not cross page boundaries
    KVM: arm: Do not indent the arguments of DECLARE_BITMAP
    ...

    Linus Torvalds
     
  • Pull SCSI updates from James Bottomley:
    "First round of SCSI updates for the 4.4 merge window.

    This batch includes a couple of minor fixes, some core changes to help
    issues we're still seeing with the suspend/resume code and updates to
    lpfc and cxlflash.

    We're (actually Martin Petersen is) trying to wrangle a mpt2/mpt3sas
    merger for the merge window which will help enormously with the
    maintenance burden, so there will be another round before it closes"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (56 commits)
    cxlflash: Fix to avoid bypassing context cleanup
    cxlflash: Fix to avoid lock instrumentation rejection
    cxlflash: Fix to avoid corrupting port selection mask
    cxlflash: Fix to escalate to LINK_RESET on login timeout
    cxlflash: Fix to avoid leaving dangling interrupt resources
    cxlflash: Fix to avoid potential deadlock on EEH
    cxlflash: Correct trace string
    cxlflash: Fix to avoid corrupting adapter fops
    cxlflash: Fix to double the delay each time
    MAINTAINERS: Add cxlflash driver
    cxlflash: Fix to prevent stale AFU RRQ
    cxlflash: Correct spelling, grammar, and alignment mistakes
    cxlflash: Fix to prevent EEH recovery failure
    cxlflash: Fix MMIO and endianness errors
    cxlflash: Fix function prolog parameters and return codes
    cxlflash: Remove unnecessary scsi_block_requests
    cxlflash: Correct behavior in device reset handler following EEH
    cxlflash: Fix to prevent workq from accessing freed memory
    cxlflash: Correct usage of scsi_host_put()
    cxlflash: Fix AFU version access/storage and add check
    ...

    Linus Torvalds
     
  • Pull iommu updates from Joerg Roedel:
    "This time including:

    - A new IOMMU driver for s390 pci devices

    - Common dma-ops support based on iommu-api for ARM64. The plan is
    to use this as a basis for ARM32 and hopefully other architectures
    as well in the future.

    - MSI support for ARM-SMMUv3

    - Cleanups and dead code removal in the AMD IOMMU driver

    - Better RMRR handling for the Intel VT-d driver

    - Various other cleanups and small fixes"

    * tag 'iommu-updates-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (41 commits)
    iommu/vt-d: Fix return value check of parse_ioapics_under_ir()
    iommu/vt-d: Propagate error-value from ir_parse_ioapic_hpet_scope()
    iommu/vt-d: Adjust the return value of the parse_ioapics_under_ir
    iommu: Move default domain allocation to iommu_group_get_for_dev()
    iommu: Remove is_pci_dev() fall-back from iommu_group_get_for_dev
    iommu/arm-smmu: Switch to device_group call-back
    iommu/fsl: Convert to device_group call-back
    iommu: Add device_group call-back to x86 iommu drivers
    iommu: Add generic_device_group() function
    iommu: Export and rename iommu_group_get_for_pci_dev()
    iommu: Revive device_group iommu-ops call-back
    iommu/amd: Remove find_last_devid_on_pci()
    iommu/amd: Remove first/last_device handling
    iommu/amd: Initialize amd_iommu_last_bdf for DEV_ALL
    iommu/amd: Cleanup buffer allocation
    iommu/amd: Remove cmd_buf_size and evt_buf_size from struct amd_iommu
    iommu/amd: Align DTE flag definitions
    iommu/amd: Remove old alias handling code
    iommu/amd: Set alias DTE in do_attach/do_detach
    iommu/amd: WARN when __[attach|detach]_device are called with irqs enabled
    ...

    Linus Torvalds
     
  • Pull intel iommu updates from David Woodhouse:
    "This adds "Shared Virtual Memory" (aka PASID support) for the Intel
    IOMMU. This allows devices to do DMA using process address space,
    translated through the normal CPU page tables for the relevant mm.

    With corresponding support added to the i915 driver, this has been
    tested with the graphics device on Skylake. We don't have the
    required TLP support in our PCIe root ports for supporting discrete
    devices yet, so it's only integrated devices that can do it so far"

    * git://git.infradead.org/intel-iommu: (23 commits)
    iommu/vt-d: Fix rwxp flags in SVM device fault callback
    iommu/vt-d: Expose struct svm_dev_ops without CONFIG_INTEL_IOMMU_SVM
    iommu/vt-d: Clean up pasid_enabled() and ecs_enabled() dependencies
    iommu/vt-d: Handle Caching Mode implementations of SVM
    iommu/vt-d: Fix SVM IOTLB flush handling
    iommu/vt-d: Use dev_err(..) in intel_svm_device_to_iommu(..)
    iommu/vt-d: fix a loop in prq_event_thread()
    iommu/vt-d: Fix IOTLB flushing for global pages
    iommu/vt-d: Fix address shifting in page request handler
    iommu/vt-d: shift wrapping bug in prq_event_thread()
    iommu/vt-d: Fix NULL pointer dereference in page request error case
    iommu/vt-d: Implement SVM_FLAG_SUPERVISOR_MODE for kernel access
    iommu/vt-d: Implement SVM_FLAG_PRIVATE_PASID to allocate unique PASIDs
    iommu/vt-d: Add callback to device driver on page faults
    iommu/vt-d: Implement page request handling
    iommu/vt-d: Generalise DMAR MSI setup to allow for page request events
    iommu/vt-d: Implement deferred invalidate for SVM
    iommu/vt-d: Add basic SVM PASID support
    iommu/vt-d: Always enable PASID/PRI PCI capabilities before ATS
    iommu/vt-d: Add initial support for PASID tables
    ...

    Linus Torvalds
     
  • Pull documentation update from Jon Corbet:
    "There is a nice new document from Neil on how pathname lookups work
    and some new CAN driver documentation. Beyond that, we have
    kernel-doc fixes, a bit more work to support reproducible builds, and
    the usual collection of small fixes"

    * tag 'docs-for-linus' of git://git.lwn.net/linux: (34 commits)
    Documentation: add new description of path-name lookup.
    Documentation/vm/slub.txt: document slabinfo-gnuplot.sh
    Doc: ABI/stable: Fix typo in ABI/stable
    doc: Clarify that nmi_watchdog param is for hardlockups
    Typo correction for description in gpio document.
    DocBook: Fix kernel-doc to be case-insensitive for private:
    kernel-docs.txt: update kernelnewbies reference
    Doc:kvm: Fix typo in Doc/virtual/kvm
    Documentation/Changes: Add bc in "Current Minimal Requirements" section
    Documentation/email-clients.txt: remove trailing whitespace
    DocBook: Use a fixed encoding for output
    MAINTAINERS: The docs tree has moved
    Docs/kernel-parameters: Add earlycon devicetree usage
    SubmittingPatches: make Subject examples match the de facto standard
    Documentation: gpio: mention that -gpio has been deprecated
    Documentation: cgroups: just fix a few typos
    Documentation: Update kselftest.txt
    Documentation: DMA API: Be more explicit that nents is always the same
    Documentation: Update the default value of crashkernel low
    zram: update documentation
    ...

    Linus Torvalds
     
  • Pull security subsystem update from James Morris:
    "This is mostly maintenance updates across the subsystem, with a
    notable update for TPM 2.0, and addition of Jarkko Sakkinen as a
    maintainer of that"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (40 commits)
    apparmor: clarify CRYPTO dependency
    selinux: Use a kmem_cache for allocation struct file_security_struct
    selinux: ioctl_has_perm should be static
    selinux: use sprintf return value
    selinux: use kstrdup() in security_get_bools()
    selinux: use kmemdup in security_sid_to_context_core()
    selinux: remove pointless cast in selinux_inode_setsecurity()
    selinux: introduce security_context_str_to_sid
    selinux: do not check open perm on ftruncate call
    selinux: change CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE default
    KEYS: Merge the type-specific data with the payload data
    KEYS: Provide a script to extract a module signature
    KEYS: Provide a script to extract the sys cert list from a vmlinux file
    keys: Be more consistent in selection of union members used
    certs: add .gitignore to stop git nagging about x509_certificate_list
    KEYS: use kvfree() in add_key
    Smack: limited capability for changing process label
    TPM: remove unnecessary little endian conversion
    vTPM: support little endian guests
    char: Drop owner assignment from i2c_driver
    ...

    Linus Torvalds
     
  • Pull audit updates from Paul Moore:
    "Seven audit patches for 4.4, but really only one of any significant
    value, the remainder are trivial cleanups that are described well
    enough in the patch descriptions.

    The one significant patch is an attempt to make communication between
    the kernel's audit subsystem and the userspace audit daemon a bit more
    robust by retrying on certain transient error conditions. All in all,
    it's a pretty small set of patches this time around with just fixes
    and cleanups"

    * 'upstream' of git://git.infradead.org/users/pcmoore/audit:
    audit: make audit_log_common_recv_msg() a void function
    audit: removing unused variable
    audit: fix comment block whitespace
    audit: audit_tree_match can be boolean
    audit: audit_string_contains_control can be boolean
    audit: audit_dummy_context can be boolean
    audit: try harder to send to auditd upon netlink failure

    Linus Torvalds
     
  • Pull userns hardlink capability check fix from Eric Biederman:
    "This round just contains a single patch. There has been a lot of
    other work this period but it is not quite ready yet, so I am pushing
    it until 4.5.

    The remaining change by Dirk Steinmetz wich fixes both Gentoo and
    Ubuntu containers allows hardlinks if we have the appropriate
    capabilities in the user namespace. Security wise it is really a
    gimme as the user namespace root can already call setuid become that
    user and create the hardlink"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    namei: permit linking with CAP_FOWNER in userns

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:
    "The cgroup core saw several significant updates this cycle:

    - percpu_rwsem for threadgroup locking is reinstated. This was
    temporarily dropped due to down_write latency issues. Oleg's
    rework of percpu_rwsem which is scheduled to be merged in this
    merge window resolves the issue.

    - On the v2 hierarchy, when controllers are enabled and disabled, all
    operations are atomic and can fail and revert cleanly. This allows
    ->can_attach() failure which is necessary for cpu RT slices.

    - Tasks now stay associated with the original cgroups after exit
    until released. This allows tracking resources held by zombies
    (e.g. pids) and makes it easy to find out where zombies came from
    on the v2 hierarchy. The pids controller was broken before these
    changes as zombies escaped the limits; unfortunately, updating this
    behavior required too many invasive changes and I don't think it's
    a good idea to backport them, so the pids controller on 4.3, the
    first version which included the pids controller, will stay broken
    at least until I'm sure about the cgroup core changes.

    - Optimization of a couple common tests using static_key"

    * 'for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (38 commits)
    cgroup: fix race condition around termination check in css_task_iter_next()
    blkcg: don't create "io.stat" on the root cgroup
    cgroup: drop cgroup__DEVEL__legacy_files_on_dfl
    cgroup: replace error handling in cgroup_init() with WARN_ON()s
    cgroup: add cgroup_subsys->free() method and use it to fix pids controller
    cgroup: keep zombies associated with their original cgroups
    cgroup: make css_set_rwsem a spinlock and rename it to css_set_lock
    cgroup: don't hold css_set_rwsem across css task iteration
    cgroup: reorganize css_task_iter functions
    cgroup: factor out css_set_move_task()
    cgroup: keep css_set and task lists in chronological order
    cgroup: make cgroup_destroy_locked() test cgroup_is_populated()
    cgroup: make css_sets pin the associated cgroups
    cgroup: relocate cgroup_[try]get/put()
    cgroup: move check_for_release() invocation
    cgroup: replace cgroup_has_tasks() with cgroup_is_populated()
    cgroup: make cgroup->nr_populated count the number of populated css_sets
    cgroup: remove an unused parameter from cgroup_task_migrate()
    cgroup: fix too early usage of static_branch_disable()
    cgroup: make cgroup_update_dfl_csses() migrate all target processes atomically
    ...

    Linus Torvalds
     
  • Pull libata updates from Tejun Heo:
    "Most are ahci and other device specific additions. Dan cleaned up
    ahci IRQ handling to prepare for future MSIX changes. On the libata
    core side, Vinayak updated SG handling so that NCQ commands can be
    issued through SG_IO and Christoph cleaned up code a bit. There's one
    merge from for-4.3-fixes to include a pata_macio commit that didn't
    get pushed out"

    * 'for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    ahci: add new Intel device IDs
    ahci: Add Marvell 88se91a2 device id
    ahci: cleanup ahci_host_activate_multi_irqs
    ahci: ahci_host_activate: kill IRQF_SHARED
    devicetree: bindings: Fixed a few typos
    ahci: qoriq: Disable NCQ on ls2080a SoC
    ahci: qoriq: Rename LS2085A SoC support code to LS2080A
    libata: enable LBA flag in taskfile for ata_scsi_pass_thru()
    libata: add support for NCQ commands for SG interface
    ahci: qoriq: Fix a compiling warning
    pata_it821x: use "const char *" for string literals
    libata: only call ->done once all per-tag ressources are released
    libata: cleanup ata_scsi_qc_complete
    ata: ahci: find eSATA ports and flag them as removable
    libata: samsung_cf: fix handling platform_get_irq result
    ata: pata_macio: Fix module autoload for OF platform driver
    ata: pata_pxa: dmaengine conversion
    ahci: added a new driver for supporting Freescale AHCI sata
    devicetree:bindings: add devicetree bindings for Freescale AHCI
    Revert "ahci: added support for Freescale AHCI sata"

    Linus Torvalds
     
  • Pull workqueue update from Tejun Heo:
    "This pull request contains one patch to make an unbound worker pool
    allocated from the NUMA node containing it if such node exists. As
    unbound worker pools are node-affine by default, this makes most pools
    allocated on the right node"

    * 'for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: Allocate the unbound pool using local node memory

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "Quite a lot of activity in SPI this cycle, almost all of it in drivers
    with a few minor improvements and tweaks in the core.

    - Updates to pxa2xx to support Intel Broxton and multiple chip selects.
    - Support for big endian in the bcm63xx driver.
    - Multiple slave support for the mt8173
    - New driver for the auxiliary SPI controller in bcm2835 SoCs.
    - Support for Layerscale SoCs in the Freescale DSPI driver"

    * tag 'spi-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (87 commits)
    spi: pxa2xx: Rework self-initiated platform data creation for non-ACPI
    spi: pxa2xx: Add support for Intel Broxton
    spi: pxa2xx: Detect number of enabled Intel LPSS SPI chip select signals
    spi: pxa2xx: Add output control for multiple Intel LPSS chip selects
    spi: pxa2xx: Use LPSS prefix for defines that are Intel LPSS specific
    spi: Add DSPI support for layerscape family
    spi: ti-qspi: improve ->remove() callback
    spi/spi-xilinx: Fix race condition on last word read
    spi: Drop owner assignment from spi_drivers
    spi: Add THIS_MODULE to spi_driver in SPI core
    spi: Setup the master controller driver before setting the chipselect
    spi: dw: replace magic constant by DW_SPI_DR
    spi: mediatek: mt8173 spi multiple devices support
    spi: mediatek: handle controller_data in mtk_spi_setup
    spi: mediatek: remove mtk_spi_config
    spi: mediatek: Update document devicetree bindings to support multiple devices
    spi: fix kernel-doc warnings about missing return desc in spi.c
    spi: fix kernel-doc warnings about missing return desc in spi.h
    spi: pxa2xx: Align a few defines
    spi: pxa2xx: Save other reg_cs_ctrl bits when configuring chip select
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "This is quite a quiet release in terms of volume of patches but it
    includes a couple of really nice core changes - the work Sascha has
    done in particular is something I've wanted to get done for a long
    time but just never got round to myself.

    Highlights include:

    - Support from Sascha Hauer for setting the voltage of parent
    supplies based on requests from their children. This is used both
    to allow set_voltage() to work through a dumb switch and to improve
    the efficiency of systems where DCDCs are used to supply LDOs by
    minimising the voltage drop over the LDOs.

    - Removal of regulator_list by Tomeu Vizoso, meaning we're not
    duplicating the device list maintained by the driver core.

    - Support for Wolfson/Cirrus WM8998 and WM1818"

    * tag 'regulator-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (29 commits)
    regulator: Use regulator_lock_supply() for get_voltage() too
    regulator: arizona: Add regulator specific device tree binding document
    regulator: stw481x: compile on COMPILE_TEST
    regulator: qcom-smd: Correct set_load() unit
    regulator: core: Propagate voltage changes to supply regulators
    regulator: core: Factor out regulator_map_voltage
    regulator: i.MX anatop: Allow supply regulator
    regulator: introduce min_dropout_uV
    regulator: core: create unlocked version of regulator_set_voltage
    regulator: arizona-ldo1: Fix handling of GPIO 0
    regulator: da9053: Update regulator for DA9053 BC silicon support
    regulator: max77802: Separate sections for nodes and properties
    regulator: max77802: Add input supply properties to DT binding doc
    regulator: axp20x: set supply names for AXP22X DC1SW/DC5LDO internally
    regulator: axp20x: Drop AXP221 DC1SW and DC5LDO regulator supplies from bindings
    mfd: tps6105x: Use i2c regmap to access registers
    regulator: act8865: add DT binding for property "active-semi,vsel-high"
    regulator: act8865: support output voltage by VSET2[] bits
    regulator: arizona: add support for WM8998 and WM1814
    regulator: core: create unlocked version of regulator_list_voltage
    ...

    Linus Torvalds
     
  • Pull clk updates from Stephen Boyd:
    "The majority of the changes are driver updates and new device support.
    The core framework is mostly unchanged this time around, with only a
    couple patches to expose a clk provider API and make getting clk
    parent names from DT more robust.

    Driver updates:

    - Support for clock controllers found on Broadcom Northstar SoCs and
    bcm2835 SoC

    - Support for Allwinner audio clocks

    - A few cleanup patches for Tegra drivers and support for the highest
    DFLL frequencies on Tegra124

    - Samsung exynos7 fixes and improvements

    - i.Mx SoC updates to add a few missing clocks and keep debug uart
    clocks on during kernel intialization

    - Some mediatek cleanups and support for more subsystem clocks

    - Support for msm8916 gpu/audio clocks and qcom's GDSC power domain
    controllers

    - A new driver for the Silabs si514 clock chip"

    * tag 'clk-for-linus-20151104' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (143 commits)
    clk: qcom: msm8960: Fix dsi1/2 halt bits
    clk: lpc18xx-cgu: fix potential system hang when disabling unused clocks
    clk: lpc18xx-ccu: fix potential system hang when disabling unused clocks
    clk: Add clk_hw_is_enabled() for use by clk providers
    clk: Add stubs for of_clk_*() APIs when CONFIG_OF=n
    clk: versatile-icst: fix memory leak
    clk: Remove clk_{register,unregister}_multiplier()
    clk: iproc: define Broadcom NS2 iProc clock binding
    clk: iproc: define Broadcom NSP iProc clock binding
    clk: ns2: add clock support for Broadcom Northstar 2 SoC
    clk: iproc: Separate status and control variables
    clk: iproc: Split off dig_filter
    clk: iproc: Add PLL base write function
    clk: nsp: add clock support for Broadcom Northstar Plus SoC
    clk: iproc: Add PWRCTRL support
    clk: cygnus: Convert all macros to all caps
    ARM: cygnus: fix link failures when CONFIG_COMMON_CLK_IPROC is disabled
    clk: imx31: add missing of_node_put
    clk: imx27: add missing of_node_put
    clk: si5351: add missing of_node_put
    ...

    Linus Torvalds
     
  • Pull power supply and reset updates from Sebastian Reichel:
    - new AXP20X USB Power driver
    - new Qualcomm SMBB driver
    - new TPS65217 Charger driver
    - BQ24257: add BQ24250/BQ24251 support
    - overhaul bq27x00 battery driver, rename to bq27xxx
    - misc fixes and cleanups

    * tag 'for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (54 commits)
    power: bq27xxx_battery: Remove unneeded dependency in Kconfig
    power: bq27xxx_battery: move irq handler to i2c section
    power: bq27xxx_battery: fix platform probe
    twl4030_charger: add missing iio dependency
    power_supply: charger-manager: add missing of_node_put
    Documentation: power: bq24257: Document exported sysfs entries
    power: bq24257: Add various device-specific sysfs properties
    power: bq24257: Allow input current limit sysfs access
    power: bq24257: Add input DPM voltage threshold setting support
    power: bq24257: Add over voltage protection setting support
    power: bq24257: Add SW-based approach for Power Good determination
    power: bq24257: Allow manual setting of input current limit
    power: bq24257: Add bit definition for temp sense enable
    power: bq24257: Add basic support for bq24250/bq24251
    dt: power: bq24257-charger: Cover additional devices
    power: bq24257: Simplify bq24257_power_supply_init()
    power: bq24257: Use managed power supply register
    power: bq24257: Streamline input current limit setup
    power: bq24257: Remove IRQ config through stat-gpios
    power: bq27xxx_battery: fix signedness bug in bq27xxx_battery_read_health()
    ...

    Linus Torvalds
     
  • Pull HSI updates from Sebastian Reichel:
    "Misc fixes"

    * tag 'hsi-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
    hsi: controllers:remove redundant code
    hsi: correctly handle return value of kzalloc
    hsi: omap_ssi_port: Prevent warning if cawake_gpio is not defined.
    hsi: fix double kfree
    HSI: Fix a typo

    Linus Torvalds
     
  • Pull media updates from Mauro Carvalho Chehab:
    "Media updates, including:

    - Lots of improvements at the kABI documentation
    - Split of Videobuf2 into a common part and a V4L2 specific one
    - Split of the VB2 tracing events into a separate header file
    - s5p-mfc got support for Exynos 5433
    - v4l2 fixes for 64-bits alignment when running 32 bits userspace
    on ARM
    - Added support for SDR radio transmitter at core, vivid and hackrf
    drivers
    - Some y2038 fixups
    - Some improvements at V4L2 colorspace support
    - saa7164 converted to use the V4L2 core control framework
    - several new boards additions, cleanups and fixups

    PS: There are two patches for scripts/kernel-doc that are needed by
    the documentation patches on Media. Jon is OK on merging those via
    my tree"

    * tag 'media/v4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (146 commits)
    [media] c8sectpfe: Remove select on CONFIG_FW_LOADER_USER_HELPER_FALLBACK
    [media] DocBook media: update copyright/version numbers
    [media] ivtv: Convert to get_user_pages_unlocked()
    [media] media/v4l2-ctrls: fix setting autocluster to manual with VIDIOC_S_CTRL
    [media] DocBook media: Fix a typo in encoder cmd
    [media] DocBook: add SDR specific info to G_MODULATOR / S_MODULATOR
    [media] DocBook: add SDR specific info to G_TUNER / S_TUNER
    [media] hackrf: do not set human readable name for formats
    [media] hackrf: add support for transmitter
    [media] hackrf: switch to single function which configures everything
    [media] hackrf: add control for RF amplifier
    [media] DocBook: add modulator type field
    [media] v4l: add type field to v4l2_modulator struct
    [media] DocBook: document SDR transmitter
    [media] v4l2: add support for SDR transmitter
    [media] DocBook: document tuner RF gain control
    [media] v4l2: add RF gain control
    [media] v4l2: rename V4L2_TUNER_ADC to V4L2_TUNER_SDR
    [media] media/vivid-osd: fix info leak in ioctl
    [media] media: videobuf2: Move v4l2-specific stuff to videobuf2-v4l2
    ...

    Linus Torvalds
     
  • Pull pstore updates from Tony Luck:
    "Half dozen small cleanups plus change to allow pstore backend drivers
    to be unloaded"

    * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    pstore: fix code comment to match code
    efi-pstore: fix kernel-doc argument name
    pstore: Fix return type of pstore_is_mounted()
    pstore: add pstore unregister
    pstore: add a helper function pstore_register_kmsg
    pstore: add vmalloc error check

    Linus Torvalds
     
  • Pull f2fs updates from Jaegeuk Kim:
    "Most part of the patches include enhancing the stability and
    performance of in-memory extent caches feature.

    In addition, it introduces several new features and configurable
    points:
    - F2FS_GOING_DOWN_METAFLUSH ioctl to test power failures
    - F2FS_IOC_WRITE_CHECKPOINT ioctl to trigger checkpoint by users
    - background_gc=sync mount option to do gc synchronously
    - periodic checkpoints
    - sysfs entry to control readahead blocks for free nids

    And the following bug fixes have been merged.
    - fix SSA corruption by collapse/insert_range
    - correct a couple of gc behaviors
    - fix the results of f2fs_map_blocks
    - fix error case handling of volatile/atomic writes"

    * tag 'for-f2fs-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (54 commits)
    f2fs: fix to skip shrinking extent nodes
    f2fs: fix error path of ->symlink
    f2fs: fix to clear GCed flag for atomic written page
    f2fs: don't need to submit bio on error case
    f2fs: fix leakage of inmemory atomic pages
    f2fs: refactor __find_rev_next_{zero}_bit
    f2fs: support fiemap for inline_data
    f2fs: flush dirty data for bmap
    f2fs: relocate the tracepoint for background_gc
    f2fs crypto: fix racing of accessing encrypted page among
    f2fs: export ra_nid_pages to sysfs
    f2fs: readahead for free nids building
    f2fs: support lower priority asynchronous readahead in ra_meta_pages
    f2fs: don't tag REQ_META for temporary non-meta pages
    f2fs: add a tracepoint for f2fs_read_data_pages
    f2fs: set GFP_NOFS for grab_cache_page
    f2fs: fix SSA updates resulting in corruption
    Revert "f2fs: do not skip dentry block writes"
    f2fs: add F2FS_GOING_DOWN_METAFLUSH to test power-failure
    f2fs: merge meta writes as many possible
    ...

    Linus Torvalds
     
  • Pull dlm update from David Teigland:
    "This includes one simple fix to make posix locks interruptible by
    signals in cases where a signal handler is used"

    * tag 'dlm-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
    dlm: make posix locks interruptible

    Linus Torvalds
     
  • Pull file locking updates from Jeff Layton:
    "The largest series of changes is from Ben who offered up a set to add
    a new helper function for setting locks based on the type set in
    fl_flags. Dmitry also send in a fix for a potential race that he
    found with KTSAN"

    * tag 'locks-v4.4-1' of git://git.samba.org/jlayton/linux:
    locks: cleanup posix_lock_inode_wait and flock_lock_inode_wait
    Move locks API users to locks_lock_inode_wait()
    locks: introduce locks_lock_inode_wait()
    locks: Use more file_inode and fix a comment
    fs: fix data races on inode->i_flctx
    locks: change tracepoint for generic_add_lease

    Linus Torvalds
     

05 Nov, 2015

18 commits

  • I found PML was broken since below commit:

    commit feda805fe7c4ed9cf78158e73b1218752e3b4314
    Author: Xiao Guangrong
    Date: Wed Sep 9 14:05:55 2015 +0800

    KVM: VMX: unify SECONDARY_VM_EXEC_CONTROL update

    Unify the update in vmx_cpuid_update()

    Signed-off-by: Xiao Guangrong
    [Rewrite to use vmcs_set_secondary_exec_control. - Paolo]
    Signed-off-by: Paolo Bonzini

    The reason is in above commit vmx_cpuid_update calls vmx_secondary_exec_control,
    in which currently SECONDARY_EXEC_ENABLE_PML bit is cleared unconditionally (as
    PML is enabled in creating vcpu). Therefore if vcpu_cpuid_update is called after
    vcpu is created, PML will be disabled unexpectedly while log-dirty code still
    thinks PML is used.

    Fix this by clearing SECONDARY_EXEC_ENABLE_PML in vmx_secondary_exec_control
    only when PML is not supported or not enabled (!enable_pml). This is more
    reasonable as PML is currently either always enabled or disabled. With this
    explicit updating SECONDARY_EXEC_ENABLE_PML in vmx_enable{disable}_pml is not
    needed so also rename vmx_enable{disable}_pml to vmx_create{destroy}_pml_buffer.

    Fixes: feda805fe7c4ed9cf78158e73b1218752e3b4314
    Signed-off-by: Kai Huang
    [While at it, change a wrong ASSERT to an "if". The condition can happen
    if creating the VCPU fails with ENOMEM. - Paolo]
    Signed-off-by: Paolo Bonzini

    Kai Huang
     
  • Pull char/misc driver updates from Greg KH:
    "Here is the big char/misc driver update for 4.4-rc1. Lots of
    different driver and subsystem updates, hwtracing being the largest
    with the addition of some new platforms that are now supported. Full
    details in the shortlog.

    All of these have been in linux-next for a long time with no reported
    issues"

    * tag 'char-misc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (181 commits)
    fpga: socfpga: Fix check of return value of devm_request_irq
    lkdtm: fix ACCESS_USERSPACE test
    mcb: Destroy IDA on module unload
    mcb: Do not return zero on error path in mcb_pci_probe()
    mei: bus: set the device name before running fixup
    mei: bus: use correct lock ordering
    mei: Fix debugfs filename in error output
    char: ipmi: ipmi_ssif: Replace timeval with timespec64
    fpga: zynq-fpga: Fix issue with drvdata being overwritten.
    fpga manager: remove unnecessary null pointer checks
    fpga manager: ensure lifetime with of_fpga_mgr_get
    fpga: zynq-fpga: Change fw format to handle bin instead of bit.
    fpga: zynq-fpga: Fix unbalanced clock handling
    misc: sram: partition base address belongs to __iomem space
    coresight: etm3x: adding documentation for sysFS's cpu interface
    vme: 8-bit status/id takes 256 values, not 255
    fpga manager: Adding FPGA Manager support for Xilinx Zynq 7000
    ARM: zynq: dt: Updated devicetree for Zynq 7000 platform.
    ARM: dt: fpga: Added binding docs for Xilinx Zynq FPGA manager.
    ver_linux: proc/modules, limit text processing to 'sed'
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here's the "big" driver core updates for 4.4-rc1. Primarily a bunch
    of debugfs updates, with a smattering of minor driver core fixes and
    updates as well.

    All have been in linux-next for a long time"

    * tag 'driver-core-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    debugfs: Add debugfs_create_ulong()
    of: to support binding numa node to specified device in devicetree
    debugfs: Add read-only/write-only bool file ops
    debugfs: Add read-only/write-only size_t file ops
    debugfs: Add read-only/write-only x64 file ops
    debugfs: Consolidate file mode checks in debugfs_create_*()
    Revert "mm: Check if section present during memory block (un)registering"
    driver-core: platform: Provide helpers for multi-driver modules
    mm: Check if section present during memory block (un)registering
    devres: fix a for loop bounds check
    CMA: fix CONFIG_CMA_SIZE_MBYTES overflow in 64bit
    base/platform: assert that dev_pm_domain callbacks are called unconditionally
    sysfs: correctly handle short reads on PREALLOC attrs.
    base: soc: siplify ida usage
    kobject: move EXPORT_SYMBOL() macros next to corresponding definitions
    kobject: explain what kobject's sd field is
    debugfs: document that debugfs_remove*() accepts NULL and error values
    debugfs: Pass bool pointer to debugfs_create_bool()
    ACPI / EC: Fix broken 64bit big-endian users of 'global_lock'

    Linus Torvalds
     
  • Pull staging driver updates from Greg KH:
    "Here's the big staging driver update for 4.4-rc1. If you were
    disappointed for 4.3-rc1 that we didn't contribute enough changesets,
    you should be happy with this pull request of over 2400 patches.

    But overall we removed more lines of code than we added, which is nice
    to see. Full details in the shortlog.

    All of these have been in linux-next for a while"

    Greg, I've never been disappointed in how few commits Staging
    contributes to the kernel.. Never.

    * tag 'staging-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (2431 commits)
    Staging: rtl8192u: ieee80211: added missing blank lines
    Staging: rtl8192u: ieee80211: removed unnecessary braces
    Staging: rtl8192u: ieee80211: corrected block comments
    Staging: rtl8192u: ieee80211: corrected indent
    Staging: rtl8192u: ieee80211: added missing spaces after if
    Staging: rtl8192u: ieee80211: added missing space around '='
    Staging: rtl8192u: ieee80211: fixed position of else statements
    Staging: rtl8192u: ieee80211: fixed open brace positions
    staging: rdma: ipath: Remove unneeded vairable.
    staging: rtl8188eu: pwrGrpCnt variable removed in store_pwrindex_offset function
    staging: rtl8188eu: new variable for hal_data->MCSTxPowerLevelOriginalOffset[pwrGrpCnt] in store_pwrindex_offset function
    staging: rtl8188eu: checkpatch fixes: 'Avoid CamelCase' in hal/bb_cfg.c
    staging: rtl8188eu: checkpatch fixes: line over 80 characters splited into two parts
    staging: rtl8188eu: checkpatch fixes: alignment should match open parenthesis
    staging: rtl8188eu: checkpatch fixes: unnecessary parentheses removed in hal/bb_cfg.c
    staging: rtl8188eu: checkpatch fixes: spaces preferred around that '|' in hal/bb_cfg.c
    staging: rtl8188eu: operator = replaced by += in loop increment
    staging: rtl8188eu: occurrence of the 5 GHz code marked
    staging: rtl8188eu: increment placed into for loop header
    staging: rtl8188eu: while loop replaced by for loop in rtw_restruct_wmm_ie
    ...

    Linus Torvalds
     
  • Pull tty/serial driver updates from Greg KH:
    "Here is the big tty and serial driver update for 4.4-rc1.

    Lots of serial driver updates and a few small tty core changes. Full
    details in the shortlog.

    All of these have been in linux-next for a while"

    * tag 'tty-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (148 commits)
    tty: Use unbound workqueue for all input workers
    tty: Abstract tty buffer work
    tty: Prevent tty teardown during tty_write_message()
    tty: core: Use correct spinlock flavor in tiocspgrp()
    tty: Combine SIGTTOU/SIGTTIN handling
    serial: amba-pl011: fix incorrect integer size in pl011_fifo_to_tty()
    ttyFDC: Fix build problems due to use of module_{init,exit}
    tty: remove unneeded return statement
    serial: 8250_mid: add support for DMA engine handling from UART MMIO
    dmaengine: hsu: remove platform data
    dmaengine: hsu: introduce stubs for the exported functions
    dmaengine: hsu: make the UART driver in control of selecting this driver
    serial: fix mctrl helper functions
    serial: 8250_pci: Intel MID UART support to its own driver
    serial: fsl_lpuart: add earlycon support
    tty: disable unbind for old 74xx based serial/mpsc console port
    serial: pl011: Spelling s/clocks-names/clock-names/
    n_tty: Remove reader wakeups for TTY_BREAK/TTY_PARITY chars
    tty: synclink, fix indentation
    serial: at91, fix rs485 properties
    ...

    Linus Torvalds
     
  • Pull USB updates from Greg KH:
    "Here is the big USB patchset for 4.4-rc1.

    As usual, most of the changes are in the gadget subsystem, and we
    removed a host controller for a device that is no longer in existance,
    and probably never was even made public. There is also other minor
    driver updates and new device ids, full details in the changelog.

    All of these have been in linux-next for a while"

    * tag 'usb-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (233 commits)
    USB: core: Codestyle fix in urb.c
    usb: misc: usb3503: Use i2c_add_driver helper macro
    usb: host: lpc32xx: don't unregister phy device
    usb: host: lpc32xx: balance clk enable/disable on removal
    usb: host: lpc32xx: fix warnings caused by enabling unprepared clock
    uwb: drp: Use setup_timer
    uwb: neh: Use setup_timer
    uwb: rsv: Use setup_timer
    USB: qcserial: add Sierra Wireless MC74xx/EM74xx
    usb: chipidea: otg: don't wait vbus drops below BSV when starts host
    chipidea: ci_hdrc_pci: use PCI_VDEVICE() instead of PCI_DEVICE()
    doc: dt-binding: ci-hdrc-usb2: split vendor specific properties
    usb: chipidea: imx: add imx6ul usb support
    doc: dt-binding: ci-hdrc-usb2: improve property description
    usb: chipidea: imx: add usb support for imx7d
    Doc: usb: ci-hdrc-usb2: Add phy-clkgate-delay-us entry
    usb: chipidea: Add support for 'phy-clkgate-delay-us' property
    usb: chipidea: Use extcon framework for VBUS and ID detect
    usb: gadget: net2280: restore ep_cfg after defect7374 workaround
    usb: dwc2: host: Fix use after free w/ simultaneous irqs
    ...

    Linus Torvalds
     
  • Pull device mapper updates from Mike Snitzer:
    "Smaller set of DM changes for this merge. I've based these changes on
    Jens' for-4.4/reservations branch because the associated DM changes
    required it.

    - Revert a dm-multipath change that caused a regression for
    unprivledged users (e.g. kvm guests) that issued ioctls when a
    multipath device had no available paths.

    - Include Christoph's refactoring of DM's ioctl handling and add
    support for passing through persistent reservations with DM
    multipath.

    - All other changes are very simple cleanups"

    * tag 'dm-4.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm switch: simplify conditional in alloc_region_table()
    dm delay: document that offsets are specified in sectors
    dm delay: capitalize the start of an delay_ctr() error message
    dm delay: Use DM_MAPIO macros instead of open-coded equivalents
    dm linear: remove redundant target name from error messages
    dm persistent data: eliminate unnecessary return values
    dm: eliminate unused "bioset" process for each bio-based DM device
    dm: convert ffs to __ffs
    dm: drop NULL test before kmem_cache_destroy() and mempool_destroy()
    dm: add support for passing through persistent reservations
    dm: refactor ioctl handling
    Revert "dm mpath: fix stalls when handling invalid ioctls"
    dm: initialize non-blk-mq queue data before queue is used

    Linus Torvalds
     
  • Pull md updates from Neil Brown:
    "Two major components to this update.

    1) The clustered-raid1 support from SUSE is nearly complete. There
    are a few outstanding issues being worked on. Maybe half a dozen
    patches will bring this to a usable state.

    2) The first stage of journalled-raid5 support from Facebook makes an
    appearance. With a journal device configured (typically NVRAM or
    SSD), the "RAID5 write hole" should be closed - a crash during
    degraded operations cannot result in data corruption.

    The next stage will be to use the journal as a write-behind cache
    so that latency can be reduced and in some cases throughput
    increased by performing more full-stripe writes.

    * tag 'md/4.4' of git://neil.brown.name/md: (66 commits)
    MD: when RAID journal is missing/faulty, block RESTART_ARRAY_RW
    MD: set journal disk ->raid_disk
    MD: kick out journal disk if it's not fresh
    raid5-cache: start raid5 readonly if journal is missing
    MD: add new bit to indicate raid array with journal
    raid5-cache: IO error handling
    raid5: journal disk can't be removed
    raid5-cache: add trim support for log
    MD: fix info output for journal disk
    raid5-cache: use bio chaining
    raid5-cache: small log->seq cleanup
    raid5-cache: new helper: r5_reserve_log_entry
    raid5-cache: inline r5l_alloc_io_unit into r5l_new_meta
    raid5-cache: take rdev->data_offset into account early on
    raid5-cache: refactor bio allocation
    raid5-cache: clean up r5l_get_meta
    raid5-cache: simplify state machine when caches flushes are not needed
    raid5-cache: factor out a helper to run all stripes for an I/O unit
    raid5-cache: rename flushed_ios to finished_ios
    raid5-cache: free I/O units earlier
    ...

    Linus Torvalds
     
  • Pull block reservation support from Jens Axboe:
    "This adds support for persistent reservations, both at the core level,
    as well as for sd and NVMe"

    [ Background from the docs: "Persistent Reservations allow restricting
    access to block devices to specific initiators in a shared storage
    setup. All implementations are expected to ensure the reservations
    survive a power loss and cover all connections in a multi path
    environment" ]

    * 'for-4.4/reservations' of git://git.kernel.dk/linux-block:
    NVMe: Precedence error in nvme_pr_clear()
    nvme: add missing endianess annotations in nvme_pr_command
    NVMe: Add persistent reservation ops
    sd: implement the Persistent Reservation API
    block: add an API for Persistent Reservations
    block: cleanup blkdev_ioctl

    Linus Torvalds
     
  • Pull block integrity updates from Jens Axboe:
    ""This is the joint work of Dan and Martin, cleaning up and improving
    the support for block data integrity"

    * 'for-4.4/integrity' of git://git.kernel.dk/linux-block:
    block, libnvdimm, nvme: provide a built-in blk_integrity nop profile
    block: blk_flush_integrity() for bio-based drivers
    block: move blk_integrity to request_queue
    block: generic request_queue reference counting
    nvme: suspend i/o during runtime blk_integrity_unregister
    md: suspend i/o during runtime blk_integrity_unregister
    md, dm, scsi, nvme, libnvdimm: drop blk_integrity_unregister() at shutdown
    block: Inline blk_integrity in struct gendisk
    block: Export integrity data interval size in sysfs
    block: Reduce the size of struct blk_integrity
    block: Consolidate static integrity profile properties
    block: Move integrity kobject to struct gendisk

    Linus Torvalds
     
  • Pull lightnvm support from Jens Axboe:
    "This adds support for lightnvm, and adds support to NVMe as well.
    This is pretty exciting, in that it enables new and interesting use
    cases for compatible flash devices. There's a LWN writeup about an
    earlier posting here:

    https://lwn.net/Articles/641247/

    This has been underway for a while, and should be ready for merging at
    this point"

    * 'for-4.4/lightnvm' of git://git.kernel.dk/linux-block:
    nvme: lightnvm: clean up a data type
    lightnvm: refactor phys addrs type to u64
    nvme: LightNVM support
    rrpc: Round-robin sector target with cost-based gc
    gennvm: Generic NVM manager
    lightnvm: Support for Open-Channel SSDs

    Linus Torvalds
     
  • Pull block driver updates from Jens Axboe:
    "Here are the block driver changes for 4.4. This pull request
    contains:

    - NVMe:
    - Refactor and moving of code to prepare for proper target
    support. From Christoph and Jay.

    - 32-bit nvme warning fix from Arnd.

    - Error initialization fix from me.

    - Proper namespace removal and reference counting support from
    Keith.

    - Device resume fix on IO failure, also from Keith.

    - Dependency fix from Keith, now that nvme isn't under the
    umbrella of the block anymore.

    - Target location and maintainers update from Jay.

    - From Ming Lei, the long awaited DIO/AIO support for loop.

    - Enable BD-RE writeable opens, from Georgios"

    * 'for-4.4/drivers' of git://git.kernel.dk/linux-block: (24 commits)
    Update target repo for nvme patch contributions
    NVMe: initialize error to '0'
    nvme: use an integer value to Linux errno values
    nvme: fix 32-bit build warning
    NVMe: Add explicit block config dependency
    nvme: include in
    nvme: move to a new drivers/nvme/host directory
    nvme.h: add missing nvme_id_ctrl endianess annotations
    nvme: move hardware structures out of the uapi version of nvme.h
    nvme: add a local nvme.h header
    nvme: properly handle partially initialized queues in nvme_create_io_queues
    nvme: merge nvme_dev_start, nvme_dev_resume and nvme_async_probe
    nvme: factor reset code into a common helper
    nvme: merge nvme_dev_reset into nvme_reset_failed_dev
    nvme: delete dev from dev_list in nvme_reset
    NVMe: Simplify device resume on io queue failure
    NVMe: Namespace removal simplifications
    NVMe: Reference count open namespaces
    cdrom: Random writing support for BD-RE media
    block: loop: support DIO & AIO
    ...

    Linus Torvalds
     
  • Pull core block updates from Jens Axboe:
    "This is the core block pull request for 4.4. I've got a few more
    topic branches this time around, some of them will layer on top of the
    core+drivers changes and will come in a separate round. So not a huge
    chunk of changes in this round.

    This pull request contains:

    - Enable blk-mq page allocation tracking with kmemleak, from Catalin.

    - Unused prototype removal in blk-mq from Christoph.

    - Cleanup of the q->blk_trace exchange, using cmpxchg instead of two
    xchg()'s, from Davidlohr.

    - A plug flush fix from Jeff.

    - Also from Jeff, a fix that means we don't have to update shared tag
    sets at init time unless we do a state change. This cuts down boot
    times on thousands of devices a lot with scsi/blk-mq.

    - blk-mq waitqueue barrier fix from Kosuke.

    - Various fixes from Ming:

    - Fixes for segment merging and splitting, and checks, for
    the old core and blk-mq.

    - Potential blk-mq speedup by marking ctx pending at the end
    of a plug insertion batch in blk-mq.

    - direct-io no page dirty on kernel direct reads.

    - A WRITE_SYNC fix for mpage from Roman"

    * 'for-4.4/core' of git://git.kernel.dk/linux-block:
    blk-mq: avoid excessive boot delays with large lun counts
    blktrace: re-write setting q->blk_trace
    blk-mq: mark ctx as pending at batch in flush plug path
    blk-mq: fix for trace_block_plug()
    block: check bio_mergeable() early before merging
    blk-mq: check bio_mergeable() early before merging
    block: avoid to merge splitted bio
    block: setup bi_phys_segments after splitting
    block: fix plug list flushing for nomerge queues
    blk-mq: remove unused blk_mq_clone_flush_request prototype
    blk-mq: fix waitqueue_active without memory barrier in block/blk-mq-tag.c
    fs: direct-io: don't dirtying pages for ITER_BVEC/ITER_KVEC direct read
    fs/mpage.c: forgotten WRITE_SYNC in case of data integrity write
    block: kmemleak: Track the page allocations for struct request

    Linus Torvalds
     
  • Pull power management and ACPI updates from Rafael Wysocki:
    "Quite a new features are included this time.

    First off, the Collaborative Processor Performance Control interface
    (version 2) defined by ACPI will now be supported on ARM64 along with
    a cpufreq frontend for CPU performance scaling.

    Second, ACPI gets a new infrastructure for the early probing of IRQ
    chips and clock sources (along the lines of the existing similar
    mechanism for DT).

    Next, the ACPI core and the generic device properties API will now
    support a recently introduced hierarchical properties extension of the
    _DSD (Device Specific Data) ACPI device configuration object. If the
    ACPI platform firmware uses that extension to organize device
    properties in a hierarchical way, the kernel will automatically handle
    it and make those properties available to device drivers via the
    generic device properties API.

    It also will be possible to build the ACPICA's AML interpreter
    debugger into the kernel now and use that to diagnose AML-related
    problems more efficiently. In the future, this should make it
    possible to single-step AML execution and do similar things.
    Interesting stuff, although somewhat experimental at this point.

    Finally, the PM core gets a new mechanism that can be used by device
    drivers to distinguish between suspend-to-RAM (based on platform
    firmware support) and suspend-to-idle (or other variants of system
    suspend the platform firmware is not involved in) and possibly
    optimize their device suspend/resume handling accordingly.

    In addition to that, some existing features are re-organized quite
    substantially.

    First, the ACPI-based handling of PCI host bridges on x86 and ia64 is
    unified and the common code goes into the ACPI core (so as to reduce
    code duplication and eliminate non-essential differences between the
    two architectures in that area).

    Second, the Operating Performance Points (OPP) framework is
    reorganized to make the code easier to find and follow.

    Next, the cpufreq core's sysfs interface is reorganized to get rid of
    the "primary CPU" concept for configurations in which the same
    performance scaling settings are shared between multiple CPUs.

    Finally, some interfaces that aren't necessary any more are dropped
    from the generic power domains framework.

    On top of the above we have some minor extensions, cleanups and bug
    fixes in multiple places, as usual.

    Specifics:

    - ACPICA update to upstream revision 20150930 (Bob Moore, Lv Zheng).

    The most significant change is to allow the AML debugger to be
    built into the kernel. On top of that there is an update related
    to the NFIT table (the ACPI persistent memory interface) and a few
    fixes and cleanups.

    - ACPI CPPC2 (Collaborative Processor Performance Control v2) support
    along with a cpufreq frontend (Ashwin Chaugule).

    This can only be enabled on ARM64 at this point.

    - New ACPI infrastructure for the early probing of IRQ chips and
    clock sources (Marc Zyngier).

    - Support for a new hierarchical properties extension of the ACPI
    _DSD (Device Specific Data) device configuration object allowing
    the kernel to handle hierarchical properties (provided by the
    platform firmware this way) automatically and make them available
    to device drivers via the generic device properties interface
    (Rafael Wysocki).

    - Generic device properties API extension to obtain an index of
    certain string value in an array of strings, along the lines of
    of_property_match_string(), but working for all of the supported
    firmware node types, and support for the "dma-names" device
    property based on it (Mika Westerberg).

    - ACPI core fix to parse the MADT (Multiple APIC Description Table)
    entries in the order expected by platform firmware (and mandated by
    the specification) to avoid confusion on systems with more than 255
    logical CPUs (Lukasz Anaczkowski).

    - Consolidation of the ACPI-based handling of PCI host bridges on x86
    and ia64 (Jiang Liu).

    - ACPI core fixes to ensure that the correct IRQ number is used to
    represent the SCI (System Control Interrupt) in the cases when it
    has been re-mapped (Chen Yu).

    - New ACPI backlight quirk for Lenovo IdeaPad S405 (Hans de Goede).

    - ACPI EC driver fixes (Lv Zheng).

    - Assorted ACPI fixes and cleanups (Dan Carpenter, Insu Yun, Jiri
    Kosina, Rami Rosen, Rasmus Villemoes).

    - New mechanism in the PM core allowing drivers to check if the
    platform firmware is going to be involved in the upcoming system
    suspend or if it has been involved in the suspend the system is
    resuming from at the moment (Rafael Wysocki).

    This should allow drivers to optimize their suspend/resume handling
    in some cases and the changes include a couple of users of it (the
    i8042 input driver, PCI PM).

    - PCI PM fix to prevent runtime-suspended devices with PME enabled
    from being resumed during system suspend even if they aren't
    configured to wake up the system from sleep (Rafael Wysocki).

    - New mechanism to report the number of a wakeup IRQ that woke up the
    system from sleep last time (Alexandra Yates).

    - Removal of unused interfaces from the generic power domains
    framework and fixes related to latency measurements in that code
    (Ulf Hansson, Daniel Lezcano).

    - cpufreq core sysfs interface rework to make it handle CPUs that
    share performance scaling settings (represented by a common cpufreq
    policy object) more symmetrically (Viresh Kumar).

    This should help to simplify the CPU offline/online handling among
    other things.

    - cpufreq core fixes and cleanups (Viresh Kumar).

    - intel_pstate fixes related to the Turbo Activation Ratio (TAR)
    mechanism on client platforms which causes the turbo P-states range
    to vary depending on platform firmware settings (Srinivas
    Pandruvada).

    - intel_pstate sysfs interface fix (Prarit Bhargava).

    - Assorted cpufreq driver (imx, tegra20, powernv, integrator) fixes
    and cleanups (Bai Ping, Bartlomiej Zolnierkiewicz, Shilpasri G
    Bhat, Luis de Bethencourt).

    - cpuidle mvebu driver cleanups (Russell King).

    - OPP (Operating Performance Points) framework code reorganization to
    make it more maintainable (Viresh Kumar).

    - Intel Broxton support for the RAPL (Running Average Power Limits)
    power capping driver (Amy Wiles).

    - Assorted power management code fixes and cleanups (Dan Carpenter,
    Geert Uytterhoeven, Geliang Tang, Luis de Bethencourt, Rasmus
    Villemoes)"

    * tag 'pm+acpi-4.4-rc1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (108 commits)
    cpufreq: postfix policy directory with the first CPU in related_cpus
    cpufreq: create cpu/cpufreq/policyX directories
    cpufreq: remove cpufreq_sysfs_{create|remove}_file()
    cpufreq: create cpu/cpufreq at boot time
    cpufreq: Use cpumask_copy instead of cpumask_or to copy a mask
    cpufreq: ondemand: Drop unnecessary locks from update_sampling_rate()
    PM / Domains: Merge measurements for PM QoS device latencies
    PM / Domains: Don't measure ->start|stop() latency in system PM callbacks
    PM / clk: Fix broken build due to non-matching code and header #ifdefs
    ACPI / Documentation: add copy_dsdt to ACPI format options
    ACPI / sysfs: correctly check failing memory allocation
    ACPI / video: Add a quirk to force native backlight on Lenovo IdeaPad S405
    ACPI / CPPC: Fix potential memory leak
    ACPI / CPPC: signedness bug in register_pcc_channel()
    ACPI / PAD: power_saving_thread() is not freezable
    ACPI / PM: Fix incorrect wakeup IRQ setting during suspend-to-idle
    ACPI: Using correct irq when waiting for events
    ACPI: Use correct IRQ when uninstalling ACPI interrupt handler
    cpuidle: mvebu: disable the bind/unbind attributes and use builtin_platform_driver
    cpuidle: mvebu: clean up multiple platform drivers
    ...

    Linus Torvalds
     
  • Pull xen updates from David Vrabel:

    - Improve balloon driver memory hotplug placement.

    - Use unpopulated hotplugged memory for foreign pages (if
    supported/enabled).

    - Support 64 KiB guest pages on arm64.

    - CPU hotplug support on arm/arm64.

    * tag 'for-linus-4.4-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (44 commits)
    xen: fix the check of e_pfn in xen_find_pfn_range
    x86/xen: add reschedule point when mapping foreign GFNs
    xen/arm: don't try to re-register vcpu_info on cpu_hotplug.
    xen, cpu_hotplug: call device_offline instead of cpu_down
    xen/arm: Enable cpu_hotplug.c
    xenbus: Support multiple grants ring with 64KB
    xen/grant-table: Add an helper to iterate over a specific number of grants
    xen/xenbus: Rename *RING_PAGE* to *RING_GRANT*
    xen/arm: correct comment in enlighten.c
    xen/gntdev: use types from linux/types.h in userspace headers
    xen/gntalloc: use types from linux/types.h in userspace headers
    xen/balloon: Use the correct sizeof when declaring frame_list
    xen/swiotlb: Add support for 64KB page granularity
    xen/swiotlb: Pass addresses rather than frame numbers to xen_arch_need_swiotlb
    arm/xen: Add support for 64KB page granularity
    xen/privcmd: Add support for Linux 64KB page granularity
    net/xen-netback: Make it running on 64KB page granularity
    net/xen-netfront: Make it running on 64KB page granularity
    block/xen-blkback: Make it running on 64KB page granularity
    block/xen-blkfront: Make it running on 64KB page granularity
    ...

    Linus Torvalds
     
  • Pull arm64 updates from Catalin Marinas:

    - "genirq: Introduce generic irq migration for cpu hotunplugged" patch
    merged from tip/irq/for-arm to allow the arm64-specific part to be
    upstreamed via the arm64 tree

    - CPU feature detection reworked to cope with heterogeneous systems
    where CPUs may not have exactly the same features. The features
    reported by the kernel via internal data structures or ELF_HWCAP are
    delayed until all the CPUs are up (and before user space starts)

    - Support for 16KB pages, with the additional bonus of a 36-bit VA
    space, though the latter only depending on EXPERT

    - Implement native {relaxed, acquire, release} atomics for arm64

    - New ASID allocation algorithm which avoids IPI on roll-over, together
    with TLB invalidation optimisations (using local vs global where
    feasible)

    - KASan support for arm64

    - EFI_STUB clean-up and isolation for the kernel proper (required by
    KASan)

    - copy_{to,from,in}_user optimisations (sharing the memcpy template)

    - perf: moving arm64 to the arm32/64 shared PMU framework

    - L1_CACHE_BYTES increased to 128 to accommodate Cavium hardware

    - Support for the contiguous PTE hint on kernel mapping (16 consecutive
    entries may be able to use a single TLB entry)

    - Generic CONFIG_HZ now used on arm64

    - defconfig updates

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (91 commits)
    arm64/efi: fix libstub build under CONFIG_MODVERSIONS
    ARM64: Enable multi-core scheduler support by default
    arm64/efi: move arm64 specific stub C code to libstub
    arm64: page-align sections for DEBUG_RODATA
    arm64: Fix build with CONFIG_ZONE_DMA=n
    arm64: Fix compat register mappings
    arm64: Increase the max granular size
    arm64: remove bogus TASK_SIZE_64 check
    arm64: make Timer Interrupt Frequency selectable
    arm64/mm: use PAGE_ALIGNED instead of IS_ALIGNED
    arm64: cachetype: fix definitions of ICACHEF_* flags
    arm64: cpufeature: declare enable_cpu_capabilities as static
    genirq: Make the cpuhotplug migration code less noisy
    arm64: Constify hwcap name string arrays
    arm64/kvm: Make use of the system wide safe values
    arm64/debug: Make use of the system wide safe value
    arm64: Move FP/ASIMD hwcap handling to common code
    arm64/HWCAP: Use system wide safe values
    arm64/capabilities: Make use of system wide safe value
    arm64: Delay cpu feature capability checks
    ...

    Linus Torvalds
     
  • Orabug: 21896119

    Use machine descriptor (MD) to get node latency
    values instead of just using default values.

    Testing:
    On an T5-8 system with:
    - total nodes = 8
    - self latencies = 0x26d18
    - latency to other nodes = 0x3a598
    => latency ratio = ~1.5

    output of numactl --hardware

    - before fix:

    node distances:
    node 0 1 2 3 4 5 6 7
    0: 10 20 20 20 20 20 20 20
    1: 20 10 20 20 20 20 20 20
    2: 20 20 10 20 20 20 20 20
    3: 20 20 20 10 20 20 20 20
    4: 20 20 20 20 10 20 20 20
    5: 20 20 20 20 20 10 20 20
    6: 20 20 20 20 20 20 10 20
    7: 20 20 20 20 20 20 20 10

    - after fix:

    node distances:
    node 0 1 2 3 4 5 6 7
    0: 10 15 15 15 15 15 15 15
    1: 15 10 15 15 15 15 15 15
    2: 15 15 10 15 15 15 15 15
    3: 15 15 15 10 15 15 15 15
    4: 15 15 15 15 10 15 15 15
    5: 15 15 15 15 15 10 15 15
    6: 15 15 15 15 15 15 10 15
    7: 15 15 15 15 15 15 15 10

    Signed-off-by: Nitin Gupta
    Reviewed-by: Chris Hyser
    Reviewed-by: Santosh Shilimkar
    Signed-off-by: David S. Miller

    Nitin Gupta
     
  • The function handle_ldf_stq() deals with no-fault ASI
    loads and stores, but restricts fp registers to quad
    word regs (ie, %f0, %f4 etc). This is valid for the
    STQ case, but unnecessarily restricts loads, which
    may be single precision, double, or quad. This results
    in SIGFPE being raised for this instruction when the
    source address is invalid:
    ldda [%g1] ASI_PNF, %f2
    but not for this one:
    ldda [%g1] ASI_PNF, %f4
    The validation check for quad register is moved to
    within the STQ block so that loads are not affected
    by the check.

    An additional problem is that the calculation for freg
    is incorrect when a single precision load is being
    handled. This causes %f1 to be seen as %f32 etc,
    and the incorrect register ends up being overwritten.
    This code sequence demonstrates the problem:
    ldd [%g1], %f32 ! g1 = valid address
    lda [%i3] ASI_PNF, %f1 ! i3 = invalid address
    std %f32, [%g1]
    This is corrected by basing the freg calculation on
    the load size.

    Signed-off-by: Rob Gardner
    Signed-off-by: David S. Miller

    Rob Gardner