28 May, 2016

3 commits

  • …linux-platform-drivers-x86

    Pull x86 platform driver updates from Darren Hart:
    "Mostly minor updates and cleanups. One new power management
    controller driver for Intel Core SoCs.

    platform/x86:
    - Add PMC Driver for Intel Core SoC

    dell-rbtn:
    - Ignore ACPI notifications if device is suspended

    thinkpad_acpi:
    - save kbdlight state on suspend and restore it on resume

    intel_menlow:
    - reduce code duplication

    asus-wmi:
    - provide access to ALS control

    ideapad-laptop:
    - add a new WMI string for ESC key

    surfacepro3_button:
    - Add a warning when switching to tablet mode

    sony-laptop:
    - Avoid oops on module unload for older laptops

    intel_telemetry:
    - Constify telemetry_core_ops structures

    fujitsu-laptop:
    - Use IS_ENABLED() instead of checking for built-in or module

    asus-laptop:
    - correct error handling in sysfs_acpi_set
    - remove redundant initializers
    - correct error handling in asus_read_brightness()

    fujitsu-laptop:
    - Support radio LED"

    * tag 'platform-drivers-x86-v4.7-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    platform/x86: Add PMC Driver for Intel Core SoC
    dell-rbtn: Ignore ACPI notifications if device is suspended
    thinkpad_acpi: save kbdlight state on suspend and restore it on resume
    intel_menlow: reduce code duplication
    asus-wmi: provide access to ALS control
    ideapad-laptop: add a new WMI string for ESC key
    surfacepro3_button: Add a warning when switching to tablet mode
    sony-laptop: Avoid oops on module unload for older laptops
    intel_telemetry: Constify telemetry_core_ops structures
    fujitsu-laptop: Use IS_ENABLED() instead of checking for built-in or module
    asus-laptop: correct error handling in sysfs_acpi_set
    asus-laptop: remove redundant initializers
    asus-laptop: correct error handling in asus_read_brightness()
    fujitsu-laptop: Support radio LED

    Linus Torvalds
     
  • Pull second batch of KVM updates from Radim Krčmář:
    "General:

    - move kvm_stat tool from QEMU repo into tools/kvm/kvm_stat (kvm_stat
    had nothing to do with QEMU in the first place -- the tool only
    interprets debugfs)

    - expose per-vm statistics in debugfs and support them in kvm_stat
    (KVM always collected per-vm statistics, but they were summarised
    into global statistics)

    x86:

    - fix dynamic APICv (VMX was improperly configured and a guest could
    access host's APIC MSRs, CVE-2016-4440)

    - minor fixes

    ARM changes from Christoffer Dall:

    - new vgic reimplementation of our horribly broken legacy vgic
    implementation. The two implementations will live side-by-side
    (with the new being the configured default) for one kernel release
    and then we'll remove the legacy one.

    - fix for a non-critical issue with virtual abort injection to guests"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (70 commits)
    tools: kvm_stat: Add comments
    tools: kvm_stat: Introduce pid monitoring
    KVM: Create debugfs dir and stat files for each VM
    MAINTAINERS: Add kvm tools
    tools: kvm_stat: Powerpc related fixes
    tools: Add kvm_stat man page
    tools: Add kvm_stat vm monitor script
    kvm:vmx: more complete state update on APICv on/off
    KVM: SVM: Add more SVM_EXIT_REASONS
    KVM: Unify traced vector format
    svm: bitwise vs logical op typo
    KVM: arm/arm64: vgic-new: Synchronize changes to active state
    KVM: arm/arm64: vgic-new: enable build
    KVM: arm/arm64: vgic-new: implement mapped IRQ handling
    KVM: arm/arm64: vgic-new: Wire up irqfd injection
    KVM: arm/arm64: vgic-new: Add vgic_v2/v3_enable
    KVM: arm/arm64: vgic-new: vgic_init: implement map_resources
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_init
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_create
    KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init
    ...

    Linus Torvalds
     
  • This patch adds the Power Management Controller driver as a PCI driver
    for Intel Core SoC architecture.

    This driver can utilize debugging capabilities and supported features
    as exposed by the Power Management Controller.

    Please refer to the below specification for more details on PMC features.
    http://www.intel.in/content/www/in/en/chipsets/100-series-chipset-datasheet-vol-2.html

    The current version of this driver exposes SLP_S0_RESIDENCY counter.
    This counter can be used for detecting fragile SLP_S0 signal related
    failures and take corrective actions when PCH SLP_S0 signal is not
    asserted after kernel freeze as part of suspend to idle flow
    (echo freeze > /sys/power/state).

    Intel Platform Controller Hub (PCH) asserts SLP_S0 signal when it
    detects favorable conditions to enter its low power mode. As a
    pre-requisite the SoC should be in deepest possible Package C-State
    and devices should be in low power mode. For example, on Skylake SoC
    the deepest Package C-State is Package C10 or PC10. Suspend to idle
    flow generally leads to PC10 state but PC10 state may not be sufficient
    for realizing the platform wide power potential which SLP_S0 signal
    assertion can provide.

    SLP_S0 signal is often connected to the Embedded Controller (EC) and the
    Power Management IC (PMIC) for other platform power management related
    optimizations.

    In general, SLP_S0 assertion == PC10 + PCH low power mode + ModPhy Lanes
    power gated + PLL Idle.

    As part of this driver, a mechanism to read the SLP_S0_RESIDENCY is exposed
    as an API and also debugfs features are added to indicate SLP_S0 signal
    assertion residency in microseconds.

    echo freeze > /sys/power/state
    wake the system
    cat /sys/kernel/debug/pmc_core/slp_s0_residency_usec

    Signed-off-by: Rajneesh Bhardwaj
    Signed-off-by: Vishwanath Somayaji
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Darren Hart

    Rajneesh Bhardwaj
     

27 May, 2016

2 commits

  • Pull kbuild updates from Michal Marek:

    - new option CONFIG_TRIM_UNUSED_KSYMS which does a two-pass build and
    unexports symbols which are not used in the current config [Nicolas
    Pitre]

    - several kbuild rule cleanups [Masahiro Yamada]

    - warning option adjustments for gcov etc [Arnd Bergmann]

    - a few more small fixes

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (31 commits)
    kbuild: move -Wunused-const-variable to W=1 warning level
    kbuild: fix if_change and friends to consider argument order
    kbuild: fix adjust_autoksyms.sh for modules that need only one symbol
    kbuild: fix ksym_dep_filter when multiple EXPORT_SYMBOL() on the same line
    gcov: disable -Wmaybe-uninitialized warning
    gcov: disable tree-loop-im to reduce stack usage
    gcov: disable for COMPILE_TEST
    Kbuild: disable 'maybe-uninitialized' warning for CONFIG_PROFILE_ALL_BRANCHES
    Kbuild: change CC_OPTIMIZE_FOR_SIZE definition
    kbuild: forbid kernel directory to contain spaces and colons
    kbuild: adjust ksym_dep_filter for some cmd_* renames
    kbuild: Fix dependencies for final vmlinux link
    kbuild: better abstract vmlinux sequential prerequisites
    kbuild: fix call to adjust_autoksyms.sh when output directory specified
    kbuild: Get rid of KBUILD_STR
    kbuild: rename cmd_as_s_S to cmd_cpp_s_S
    kbuild: rename cmd_cc_i_c to cmd_cpp_i_c
    kbuild: drop redundant "PHONY += FORCE"
    kbuild: delete unnecessary "@:"
    kbuild: mark help target as PHONY
    ...

    Linus Torvalds
     
  • Pull misc DAX updates from Vishal Verma:
    "DAX error handling for 4.7

    - Until now, dax has been disabled if media errors were found on any
    device. This enables the use of DAX in the presence of these
    errors by making all sector-aligned zeroing go through the driver.

    - The driver (already) has the ability to clear errors on writes that
    are sent through the block layer using 'DSMs' defined in ACPI 6.1.

    Other misc changes:

    - When mounting DAX filesystems, check to make sure the partition is
    page aligned. This is a requirement for DAX, and previously, we
    allowed such unaligned mounts to succeed, but subsequent
    reads/writes would fail.

    - Misc/cleanup fixes from Jan that remove unused code from DAX
    related to zeroing, writeback, and some size checks"

    * tag 'dax-misc-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    dax: fix a comment in dax_zero_page_range and dax_truncate_page
    dax: for truncate/hole-punch, do zeroing through the driver if possible
    dax: export a low-level __dax_zero_page_range helper
    dax: use sb_issue_zerout instead of calling dax_clear_sectors
    dax: enable dax in the presence of known media errors (badblocks)
    dax: fallback from pmd to pte on error
    block: Update blkdev_dax_capable() for consistency
    xfs: Add alignment check for DAX mount
    ext2: Add alignment check for DAX mount
    ext4: Add alignment check for DAX mount
    block: Add bdev_dax_supported() for dax mount checks
    block: Add vfs_msg() interface
    dax: Remove redundant inode size checks
    dax: Remove pointless writeback from dax_do_io()
    dax: Remove zeroing from dax_io()
    dax: Remove dead zeroing code from fault handlers
    ext2: Avoid DAX zeroing to corrupt data
    ext2: Fix block zeroing in ext2_get_blocks() for DAX
    dax: Remove complete_unwritten argument
    DAX: move RADIX_DAX_ definitions to dax.c

    Linus Torvalds
     

26 May, 2016

5 commits

  • Pull x86 fixes from Ingo Molnar:
    "Misc fixes: EFI, entry code, pkeys and MPX fixes, TASK_SIZE cleanups
    and a tsc frequency table fix"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm: Switch from TASK_SIZE to TASK_SIZE_MAX in the page fault code
    x86/fsgsbase/64: Use TASK_SIZE_MAX for FSBASE/GSBASE upper limits
    x86/mm/mpx: Work around MPX erratum SKD046
    x86/entry/64: Fix stack return address retrieval in thunk
    x86/efi: Fix 7-parameter efi_call()s
    x86/cpufeature, x86/mm/pkeys: Fix broken compile-time disabling of pkeys
    x86/tsc: Add missing Cherrytrail frequency to the table

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Mostly tooling and PMU driver fixes, but also a number of late updates
    such as the reworking of the call-chain size limiting logic to make
    call-graph recording more robust, plus tooling side changes for the
    new 'backwards ring-buffer' extension to the perf ring-buffer"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    perf record: Read from backward ring buffer
    perf record: Rename variable to make code clear
    perf record: Prevent reading invalid data in record__mmap_read
    perf evlist: Add API to pause/resume
    perf trace: Use the ptr->name beautifier as default for "filename" args
    perf trace: Use the fd->name beautifier as default for "fd" args
    perf report: Add srcline_from/to branch sort keys
    perf evsel: Record fd into perf_mmap
    perf evsel: Add overwrite attribute and check write_backward
    perf tools: Set buildid dir under symfs when --symfs is provided
    perf trace: Only auto set call-graph to "dwarf" when syscalls are being traced
    perf annotate: Sort list of recognised instructions
    perf annotate: Fix identification of ARM blt and bls instructions
    perf tools: Fix usage of max_stack sysctl
    perf callchain: Stop validating callchains by the max_stack sysctl
    perf trace: Fix exit_group() formatting
    perf top: Use machine->kptr_restrict_warned
    perf trace: Warn when trying to resolve kernel addresses with kptr_restrict=1
    perf machine: Do not bail out if not managing to read ref reloc symbol
    perf/x86/intel/p4: Trival indentation fix, remove space
    ...

    Linus Torvalds
     
  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set of changes introduces an atomic API to the PWM subsystem.
    This is influenced by the DRM atomic API that was introduced a while
    back, though it is obviously a lot simpler. The fundamental idea
    remains the same, though: drivers provide a single callback to
    implement the atomic configuration of a PWM channel.

    As a side-effect the PWM subsystem gains the ability for initial state
    retrieval, so that the logical state mirrors that of the hardware.
    Many use-cases don't care about this, but for others it is essential.

    These new features require changes in all users, which these patches
    take care of. The core is transitioned to use the atomic callback if
    available and provides a fallback mechanism for other drivers.

    Changes to transition users and drivers to the atomic API are
    postponed to v4.8"

    * tag 'pwm/for-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (30 commits)
    pwm: Add information about polarity, duty cycle and period to debugfs
    pwm: Switch to the atomic API
    pwm: Update documentation
    pwm: Add core infrastructure to allow atomic updates
    pwm: Add hardware readout infrastructure
    pwm: Move the enabled/disabled info into pwm_state
    pwm: Introduce the pwm_state concept
    pwm: Keep PWM state in sync with hardware state
    ARM: Explicitly apply PWM config extracted from pwm_args
    drm: i915: Explicitly apply PWM config extracted from pwm_args
    input: misc: pwm-beeper: Explicitly apply PWM config extracted from pwm_args
    input: misc: max8997: Explicitly apply PWM config extracted from pwm_args
    backlight: lm3630a: explicitly apply PWM config extracted from pwm_args
    backlight: lp855x: Explicitly apply PWM config extracted from pwm_args
    backlight: lp8788: Explicitly apply PWM config extracted from pwm_args
    backlight: pwm_bl: Use pwm_get_args() where appropriate
    fbdev: ssd1307fb: Use pwm_get_args() where appropriate
    regulator: pwm: Use pwm_get_args() where appropriate
    leds: pwm: Use pwm_get_args() where appropriate
    input: misc: max77693: Use pwm_get_args() where appropriate
    ...

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:

    - add support for Fintek F81865 Super-IO chip

    - add support for watchdogs (RWDT and SWDT) found on RCar Gen3 based
    SoCs from Renesas

    - octeon: Handle the FROZEN hot plug notifier actions

    - f71808e_wdt fixes and cleanups

    - some small improvements in code and documentation

    * git://www.linux-watchdog.org/linux-watchdog:
    MAINTAINERS: Add file patterns for watchdog device tree bindings
    Documentation: Add ebc-c384_wdt watchdog-parameters.txt entry
    watchdog: shwdt: Use setup_timer()
    watchdog: cpwd: Use setup_timer()
    arm64: defconfig: enable Renesas Watchdog Timer
    watchdog: renesas-wdt: add driver
    watchdog: remove error message when unable to allocate watchdog device
    watchdog: f71808e_wdt: Fix WDTMOUT_STS register read
    watchdog: f71808e_wdt: Fix typo
    watchdog: f71808e_wdt: Add F81865 support
    watchdog: sp5100_tco: properly check for new register layouts
    watchdog: core: Fix circular locking dependency
    watchdog: core: fix trivial typo in a comment
    watchdog: hpwdt: Adjust documentation to match latest kernel module parameters.
    watchdog: imx2_wdt: add external reset support via dt prop
    watchdog: octeon: Handle the FROZEN hot plug notifier actions.
    watchdog: qcom: Report reboot reason

    Linus Torvalds
     
  • Pull parisc updates from Helge Deller:

    - Add native high-resolution timing code for sched_clock() and other
    timing functions based on the processor internal cr16 cycle counters

    - Add syscall tracepoint support

    - Add regset support

    - Speed up get_user() and put_user() functions

    - Updated futex.h to match generic implementation (John David Anglin)

    - A few smaller ftrace build fixes

    - Fixed thuge-gen kernel self test to utilize architectured MAP_HUGETLB
    value

    - Added parisc architecture to seccomp_bpf kernel self test

    - Various typo fixes (Andrea Gelmini)

    * 'parisc-4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Whitespace cleanups in unistd.h
    parisc: Use long jump to reach ftrace_return_to_handler()
    parisc: Fix typo in fpudispatch.c
    parisc: Fix typos in eisa_eeprom.h
    parisc: Fix typo in ldcw.h
    parisc: Fix typo in pdc.h
    parisc: Update futex.h to match generic implementation
    parisc: Merge ftrace C-helper and assembler functions into .text.hot section
    selftests/thuge-gen: Use platform specific MAP_HUGETLB value
    parisc: Add native high-resolution sched_clock() implementation
    parisc: Add ARCH_TRACEHOOK and regset support
    parisc: Add 64bit get_user() and put_user() for 32bit kernel
    parisc: Simplify and speed up get_user() and put_user()
    parisc: Add syscall tracepoint support

    Linus Torvalds
     

25 May, 2016

11 commits

  • The function to update APICv on/off state (in particular, to deactivate
    it when enabling Hyper-V SynIC) is incomplete: it doesn't adjust
    APICv-related fields among secondary processor-based VM-execution
    controls. As a result, Windows 2012 guests get stuck when SynIC-based
    auto-EOI interrupt intersected with e.g. an IPI in the guest.

    In addition, the MSR intercept bitmap isn't updated every time "virtualize
    x2APIC mode" is toggled. This path can only be triggered by a malicious
    guest, because Windows didn't use x2APIC but rather their own synthetic
    APIC access MSRs; however a guest running in a SynIC-enabled VM could
    switch to x2APIC and thus obtain direct access to host APIC MSRs
    (CVE-2016-4440).

    The patch fixes those omissions.

    Signed-off-by: Roman Kagan
    Reported-by: Steve Rutherford
    Reported-by: Yang Zhang
    Signed-off-by: Paolo Bonzini

    Roman Kagan
     
  • Clean up whitespaces and mark unused syscalls as such.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "This is a first set of bug fixes on top of what was merged for 4.7.

    Two patches for lpc32xx address a harmless build warning that was just
    introduced, one patch for the mediatek soc driver fixes a warning for
    arm64, and the pxa changes are minor cleanups that should have been
    part of the original pull requests but that I forgot to apply to the
    cleanup-fixes branch earlier"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: lpc32xx: fix NR_IRQS confict
    ARM: lpc32xx: remove legacy irq controller driver
    soc: mtk-pmic-wrap: avoid integer overflow warning
    ARM: pxa: Remove CLK_IS_ROOT
    ARM: pxa: activate pinctrl for device-tree machines

    Linus Torvalds
     
  • Pull ARM SoC late DT updates from Arnd Bergmann:
    "This is a collection of a few late fixes and other misc stuff that had
    dependencies on things being merged from other trees.

    The Renesas R-Car power domain handling, and the Nvidia Tegra USB
    support both hand notable changes that required changing the DT
    binding in a way that only provides compatibility with old DT blobs on
    new kernels but not vice versa. As a consequence, the DT changes are
    based on top of the driver changes and are now in this branch.

    For NXP i.MX and Samsung Exynos, the changes in here depend on other
    changes that got merged through the clk maintainer tree"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (35 commits)
    ARM: dts: exynos: Add support of Bus frequency using VDD_INT for exynos5422-odroidxu3
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos542x SoC
    ARM: dts: exynos: Add NoC Probe dt node for Exynos542x SoC
    ARM: dts: exynos: Add support of bus frequency for exynos4412-trats/odroidu3
    ARM: dts: exynos: Expand the voltage range of buck1/3 regulator for exynos4412-odroidu3
    ARM: dts: exynos: Add support of bus frequency using VDD_INT for exynos3250-rinato
    ARM: dts: exynos: Add exynos4412-ppmu-common dtsi to delete duplicate PPMU nodes
    ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4210
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos4x12
    ARM: dts: exynos: Add bus nodes using VDD_MIF for Exynos4x12
    ARM: dts: exynos: Add bus nodes using VDD_INT for Exynos3250
    ARM: dts: exynos: Add DMC bus frequency for exynos3250-rinato/monk
    ARM: dts: exynos: Add DMC bus node for Exynos3250
    ARM: tegra: Enable XUSB on Nyan
    ARM: tegra: Enable XUSB on Jetson TK1
    ARM: tegra: Enable XUSB on Venice2
    ARM: tegra: Add Tegra124 XUSB controller
    ARM: tegra: Move Tegra124 to the new XUSB pad controller binding
    ARM: dts: r8a7794: Use SYSC "always-on" PM Domain
    ARM: dts: r8a7793: Use SYSC "always-on" PM Domain
    ...

    Linus Torvalds
     
  • Pull asm-generic cleanup from Arnd Bergmann:
    "I have only one patch for asm-generic in this release, this one is
    from James Hogan and updates the generic system call table for
    renameat2 so we don't need to provide both renameat and renameat2 in
    newly added architectures"

    * tag 'asm-generic-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    asm-generic: Drop renameat syscall from default list

    Linus Torvalds
     
  • With the change to sparse IRQs, the lpc32xx platform gets a warning about
    conflicting macros:

    In file included from arch/arm/mach-lpc32xx/irq.c:31:0:
    arch/arm/mach-lpc32xx/include/mach/irqs.h:115:0: warning: "NR_IRQS" redefined
    #define NR_IRQS 96
    arch/arm/include/asm/irq.h:9:0: note: this is the location of the previous definition
    #define NR_IRQS NR_IRQS_LEGACY

    One such instance was in the old irq driver that is now removed by
    the previous patch, but any other file including mach/irqs.h still
    has the issue. Since none of them use this constant, we can just
    remove the old definition.

    Signed-off-by: Arnd Bergmann
    Fixes: 8cb17b5ed017 ("irqchip: Add LPC32xx interrupt controller driver")

    Arnd Bergmann
     
  • New NXP LPC32xx irq chip driver is used instead of a legacy one.

    [this also fixes a harmless build warning about the NR_IRQS redefinition]

    Signed-off-by: Vladimir Zapolskiy
    Acked-by: Sylvain Lemieux
    Signed-off-by: Arnd Bergmann

    Vladimir Zapolskiy
     
  • Pull MTD updates from Brian Norris:
    "First cycle with Boris as NAND maintainer! Many (most) bullets stolen
    from him.

    Generic:
    - Migrated NAND LED trigger to be a generic MTD trigger

    NAND:
    - Introduction of the "ECC algorithm" concept, to avoid overloading
    the ECC mode field too much more
    - Replaced the nand_ecclayout infrastructure with something a little
    more flexible (finally!) and future proof
    - Rework of the OMAP GPMC and NAND drivers; the TI folks pulled some
    of this into their own tree as well
    - Prepare the sunxi NAND driver to receive DMA support
    - Handle bitflips in erased pages on GPMI revisions that do not
    support this in hardware.

    SPI NOR:
    - Start using the spi_flash_read() API for SPI drivers that support
    it (i.e., SPI drivers with special memory-mapped flash modes)

    And other small scattered improvments"

    * tag 'for-linus-20160523' of git://git.infradead.org/linux-mtd: (155 commits)
    mtd: spi-nor: support GigaDevice gd25lq64c
    mtd: nand_bch: fix spelling of "probably"
    mtd: brcmnand: respect ECC algorithm set by NAND subsystem
    gpmi-nand: Handle ECC Errors in erased pages
    Documentation: devicetree: deprecate "soft_bch" nand-ecc-mode value
    mtd: nand: add support for "nand-ecc-algo" DT property
    mtd: mtd: drop NAND_ECC_SOFT_BCH enum value
    mtd: drop support for NAND_ECC_SOFT_BCH as "soft_bch" mapping
    mtd: nand: read ECC algorithm from the new field
    mtd: nand: fsmc: validate ECC setup by checking algorithm directly
    mtd: nand: set ECC algorithm to Hamming on fallback
    staging: mt29f_spinand: set ECC algorithm explicitly
    CRIS v32: nand: set ECC algorithm explicitly
    mtd: nand: atmel: set ECC algorithm explicitly
    mtd: nand: davinci: set ECC algorithm explicitly
    mtd: nand: bf5xx: set ECC algorithm explicitly
    mtd: nand: omap2: Fix high memory dma prefetch transfer
    mtd: nand: omap2: Start dma request before enabling prefetch
    mtd: nandsim: add __init attribute
    mtd: nand: move of_get_nand_xxx() helpers into nand_base.c
    ...

    Linus Torvalds
     
  • Pull xen bug fixes from David Vrabel.

    * tag 'for-linus-4.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen: use same main loop for counting and remapping pages
    xen/events: Don't move disabled irqs
    xen/x86: actually allocate legacy interrupts on PV guests
    Xen: don't warn about 2-byte wchar_t in efi
    xen/gntdev: reduce copy batch size to 16
    xen/x86: don't lose event interrupts

    Linus Torvalds
     
  • Pull nios2 update from Ley Foon Tan:
    - add order-only DTC dependency to %.dtb target
    - fix libgcc location detection

    * tag 'nios2-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
    nios2: Add order-only DTC dependency to %.dtb target
    nios2: Fix libgcc location detection

    Linus Torvalds
     
  • Pull Microblaze updates from Michal Simek:

    - Wire-up new syscalls

    - Fix link error

    * tag 'microblaze-4.7-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
    microblaze: pci: export isa_io_base to fix link errors
    microblaze: Wire up userfaultfd, membarrier, mlock2 syscalls

    Linus Torvalds
     

24 May, 2016

19 commits

  • Instead of having two functions for cycling through the E820 map in
    order to count to be remapped pages and remap them later, just use one
    function with a caller supplied sub-function called for each region to
    be processed. This eliminates the possibility of a mismatch between
    both loops which showed up in certain configurations.

    Suggested-by: Ed Swierk
    Signed-off-by: Juergen Gross
    Cc:
    Signed-off-by: David Vrabel

    Juergen Gross
     
  • b4ff8389ed14 is incomplete: relies on nr_legacy_irqs() to get the number
    of legacy interrupts when actually nr_legacy_irqs() returns 0 after
    probe_8259A(). Use NR_IRQS_LEGACY instead.

    Signed-off-by: Stefano Stabellini
    CC: stable@vger.kernel.org

    Stefano Stabellini
     
  • On slow platforms with unreliable TSC, such as QEMU emulated machines,
    it is possible for the kernel to request the next event in the past. In
    that case, in the current implementation of xen_vcpuop_clockevent, we
    simply return -ETIME. To be precise the Xen returns -ETIME and we pass
    it on. However the result of this is a missed event, which simply causes
    the kernel to hang.

    Instead it is better to always ask the hypervisor for a timer event,
    even if the timeout is in the past. That way there are no lost
    interrupts and the kernel survives. To do that, remove the
    VCPU_SSHOTTMR_future flag.

    Signed-off-by: Stefano Stabellini
    Acked-by: Juergen Gross

    Stefano Stabellini
     
  • Useful when tracing nested setups where the guest may trigger more than
    the host usually does. But even some typical host exits were missing.

    Signed-off-by: Jan Kiszka
    Signed-off-by: Paolo Bonzini

    Jan Kiszka
     
  • These were supposed to be a bitwise operation but there is a typo.
    The result is mostly harmless, but sparse correctly complains.

    Fixes: 44a95dae1d22 ('KVM: x86: Detect and Initialize AVIC support')
    Fixes: 18f40c53e10f ('svm: Add VMEXIT handlers for AVIC')
    Signed-off-by: Dan Carpenter
    Signed-off-by: Paolo Bonzini

    Dan Carpenter
     
  • …it/kvmarm/kvmarm into kvm-next

    KVM/ARM Changes for v4.7 take 2

    "The GIC is dead; Long live the GIC"

    This set of changes include the new vgic, which is a reimplementation of
    our horribly broken legacy vgic implementation. The two implementations
    will live side-by-side (with the new being the configured default) for
    one kernel release and then we'll remove it.

    Also fixes a non-critical issue with virtual abort injection to guests.

    Paolo Bonzini
     
  • Merge yet more updates from Andrew Morton:

    - Oleg's "wait/ptrace: assume __WALL if the child is traced". It's a
    kernel-based workaround for existing userspace issues.

    - A few hotfixes

    - befs cleanups

    - nilfs2 updates

    - sys_wait() changes

    - kexec updates

    - kdump

    - scripts/gdb updates

    - the last of the MM queue

    - a few other misc things

    * emailed patches from Andrew Morton : (84 commits)
    kgdb: depends on VT
    drm/amdgpu: make amdgpu_mn_get wait for mmap_sem killable
    drm/radeon: make radeon_mn_get wait for mmap_sem killable
    drm/i915: make i915_gem_mmap_ioctl wait for mmap_sem killable
    uprobes: wait for mmap_sem for write killable
    prctl: make PR_SET_THP_DISABLE wait for mmap_sem killable
    exec: make exec path waiting for mmap_sem killable
    aio: make aio_setup_ring killable
    coredump: make coredump_wait wait for mmap_sem for write killable
    vdso: make arch_setup_additional_pages wait for mmap_sem for write killable
    ipc, shm: make shmem attach/detach wait for mmap_sem killable
    mm, fork: make dup_mmap wait for mmap_sem for write killable
    mm, proc: make clear_refs killable
    mm: make vm_brk killable
    mm, elf: handle vm_brk error
    mm, aout: handle vm_brk failures
    mm: make vm_munmap killable
    mm: make vm_mmap killable
    mm: make mmap_sem for write waits killable for mm syscalls
    MAINTAINERS: add co-maintainer for scripts/gdb
    ...

    Linus Torvalds
     
  • Pull arch/tile updates from Chris Metcalf:
    "This is an even quieter cycle than usual"

    * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    Fix typo
    Fix typo
    Fix typo
    tile: sort the "select" lines in the TILE/TILEGX configs
    tile: clarify barrier semantics of atomic_add_return
    tile/defconfigs: Remove CONFIG_IPV6_PRIVACY

    Linus Torvalds
     
  • Pull libata sata_dwc_460ex updates from Tejun Heo:
    "Patches to bring sata_dwc_460ex up to snuff.

    It was a separate pull request because it depends on dmaengine dw
    platform changes which are now in mainline"

    * 'for-4.7-dw' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (24 commits)
    ata: dwc: add DMADEVICES dependency
    powerpc/4xx: Device tree update for the 460ex DWC SATA
    ata: sata_dwc_460ex: make debug messages neat
    ata: sata_dwc_460ex: supply physical address of FIFO to DMA
    ata: sata_dwc_460ex: use devm_ioremap
    ata: sata_dwc_460ex: tidy up sata_dwc_clear_dmacr()
    ata: sata_dwc_460ex: use readl/writel_relaxed()
    ata: sata_dwc_460ex: switch to new dmaengine_terminate_* API
    ata: sata_dwc_460ex: add __iomem to register base pointer
    ata: sata_dwc_460ex: get rid of incorrect cast
    ata: sata_dwc_460ex: get rid of some pointless casts
    ata: sata_dwc_460ex: remove empty libata callback
    ata: sata_dwc_460ex: correct HOSTDEV{P}_FROM_*() macros
    ata: sata_dwc_460ex: get rid of global data
    ata: sata_dwc_460ex: add phy support
    ata: sata_dwc_460ex: use "dmas" DT property to find dma channel
    ata: sata_dwc_460ex: don't call ata_sff_qc_issue() on DMA commands
    ata: sata_dwc_460ex: skip dma setup for non-dma commands
    ata: sata_dwc_460ex: select only core part of DMA driver
    ata: sata_dwc_460ex: DMA is always a flow controller
    ...

    Linus Torvalds
     
  • most architectures are relying on mmap_sem for write in their
    arch_setup_additional_pages. If the waiting task gets killed by the oom
    killer it would block oom_reaper from asynchronous address space reclaim
    and reduce the chances of timely OOM resolving. Wait for the lock in
    the killable mode and return with EINTR if the task got killed while
    waiting.

    Signed-off-by: Michal Hocko
    Acked-by: Andy Lutomirski [x86 vdso]
    Acked-by: Vlastimil Babka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • vm_brk is allowed to fail but load_aout_binary simply ignores the error
    and happily continues. I haven't noticed any problem from that in real
    life but later patches will make the failure more likely because vm_brk
    will become killable (resp. mmap_sem for write waiting will become
    killable) so we should be more careful now.

    The error handling should be quite straightforward because there are
    calls to vm_mmap which check the error properly already. The only
    notable exception is set_brk which is called after beyond_if label. But
    nothing indicates that we cannot move it above set_binfmt as the two do
    not depend on each other and fail before we do set_binfmt and alter
    reference counting.

    Signed-off-by: Michal Hocko
    Acked-by: Vlastimil Babka
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Alexander Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • This option was replaced by PAGE_COUNTER which is selected by MEMCG.

    Signed-off-by: Konstantin Khlebnikov
    Acked-by: Arnd Bergmann
    Acked-by: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • …unprotect)_crashkres()

    Commit 3f625002581b ("kexec: introduce a protection mechanism for the
    crashkernel reserved memory") is a similar mechanism for protecting the
    crash kernel reserved memory to previous crash_map/unmap_reserved_pages()
    implementation, the new one is more generic in name and cleaner in code
    (besides, some arch may not be allowed to unmap the pgtable).

    Therefore, this patch consolidates them, and uses the new
    arch_kexec_protect(unprotect)_crashkres() to replace former
    crash_map/unmap_reserved_pages() which by now has been only used by
    S390.

    The consolidation work needs the crash memory to be mapped initially,
    this is done in machine_kdump_pm_init() which is after
    reserve_crashkernel(). Once kdump kernel is loaded, the new
    arch_kexec_protect_crashkres() implemented for S390 will actually
    unmap the pgtable like before.

    Signed-off-by: Xunlei Pang <xlpang@redhat.com>
    Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
    Acked-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Minfei Huang <mhuang@redhat.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Baoquan He <bhe@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

    Xunlei Pang
     
  • Implement the protection method for the crash kernel memory reservation
    for the 64-bit x86 kdump.

    Signed-off-by: Xunlei Pang
    Cc: Eric Biederman
    Cc: Dave Young
    Cc: Minfei Huang
    Cc: Vivek Goyal
    Cc: Baoquan He
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xunlei Pang
     
  • CONFIG_MIPS32_N32=y but CONFIG_BINFMT_ELF disabled results in the
    following linker errors:

    arch/mips/built-in.o: In function `elf_core_dump':
    binfmt_elfn32.c:(.text+0x23dbc): undefined reference to `elf_core_extra_phdrs'
    binfmt_elfn32.c:(.text+0x246e4): undefined reference to `elf_core_extra_data_size'
    binfmt_elfn32.c:(.text+0x248d0): undefined reference to `elf_core_write_extra_phdrs'
    binfmt_elfn32.c:(.text+0x24ac4): undefined reference to `elf_core_write_extra_data'

    CONFIG_MIPS32_O32=y but CONFIG_BINFMT_ELF disabled results in the following
    linker errors:

    arch/mips/built-in.o: In function `elf_core_dump':
    binfmt_elfo32.c:(.text+0x28a04): undefined reference to `elf_core_extra_phdrs'
    binfmt_elfo32.c:(.text+0x29330): undefined reference to `elf_core_extra_data_size'
    binfmt_elfo32.c:(.text+0x2951c): undefined reference to `elf_core_write_extra_phdrs'
    binfmt_elfo32.c:(.text+0x29710): undefined reference to `elf_core_write_extra_data'

    This is because binfmt_elfn32 and binfmt_elfo32 are using symbols from
    elfcore but for these configurations elfcore will not be built.

    Fixed by making elfcore selectable by a separate config symbol which
    unlike the current mechanism can also be used from other directories
    than kernel/, then having each flavor of ELF that relies on elfcore.o,
    select it in Kconfig, including CONFIG_MIPS32_N32 and CONFIG_MIPS32_O32
    which fixes this issue.

    Link: http://lkml.kernel.org/r/20160520141705.GA1913@linux-mips.org
    Signed-off-by: Ralf Baechle
    Reviewed-by: James Hogan
    Cc: "Maciej W. Rozycki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • m32r allmodconfig build was failing with the error:

    ERROR: "smp_flush_cache_all" [drivers/misc/lkdtm.ko] undefined!

    lkdtm driver at drivers/misc is using flush_icache_range() which for
    m32r is defined as smp_flush_cache_all() if CONFIG_SMP is defined. But
    as smp_flush_cache_all() was not exported so the build was failing with
    the error of undefined symbol.

    Link: http://lkml.kernel.org/r/1464001182-8329-1-git-send-email-sudipm.mukherjee@gmail.com
    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sudip Mukherjee
     
  • Depending on config options we will need to use a long jump to reach
    ftrace_return_to_handler(). Additionally only compile the
    parisc_return_to_handler code when CONFIG_FUNCTION_GRAPH_TRACER is set.

    Signed-off-by: Helge Deller

    Helge Deller
     
  • Pull drm updates from Dave Airlie:
    "Here's the main drm pull request for 4.7, it's been a busy one, and
    I've been a bit more distracted in real life this merge window. Lots
    more ARM drivers, not sure if it'll ever end. I think I've at least
    one more coming the next merge window.

    But changes are all over the place, support for AMD Polaris GPUs is in
    here, some missing GM108 support for nouveau (found in some Lenovos),
    a bunch of MST and skylake fixes.

    I've also noticed a few fixes from Arnd in my inbox, that I'll try and
    get in asap, but I didn't think they should hold this up.

    New drivers:
    - Hisilicon kirin display driver
    - Mediatek MT8173 display driver
    - ARC PGU - bitstreamer on Synopsys ARC SDP boards
    - Allwinner A13 initial RGB output driver
    - Analogix driver for DisplayPort IP found in exynos and rockchip

    DRM Core:
    - UAPI headers fixes and C++ safety
    - DRM connector reference counting
    - DisplayID mode parsing for Dell 5K monitors
    - Removal of struct_mutex from drivers
    - Connector registration cleanups
    - MST robustness fixes
    - MAINTAINERS updates
    - Lockless GEM object freeing
    - Generic fbdev deferred IO support

    panel:
    - Support for a bunch of new panels

    i915:
    - VBT refactoring
    - PLL computation cleanups
    - DSI support for BXT
    - Color manager support
    - More atomic patches
    - GEM improvements
    - GuC fw loading fixes
    - DP detection fixes
    - SKL GPU hang fixes
    - Lots of BXT fixes

    radeon/amdgpu:
    - Initial Polaris support
    - GPUVM/Scheduler/Clock/Power improvements
    - ASYNC pageflip support
    - New mesa feature support

    nouveau:
    - GM108 support
    - Power sensor support improvements
    - GR init + ucode fixes.
    - Use GPU provided topology information

    vmwgfx:
    - Add host messaging support

    gma500:
    - Some cleanups and fixes

    atmel:
    - Bridge support
    - Async atomic commit support

    fsl-dcu:
    - Timing controller for LCD support
    - Pixel clock polarity support

    rcar-du:
    - Misc fixes

    exynos:
    - Pipeline clock support
    - Exynoss4533 SoC support
    - HW trigger mode support
    - export HDMI_PHY clock
    - DECON5433 fixes
    - Use generic prime functions
    - use DMA mapping APIs

    rockchip:
    - Lots of little fixes

    vc4:
    - Render node support
    - Gamma ramp support
    - DPI output support

    msm:
    - Mostly cleanups and fixes
    - Conversion to generic struct fence

    etnaviv:
    - Fix for prime buffer handling
    - Allow hangcheck to be coalesced with other wakeups

    tegra:
    - Gamme table size fix"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (1050 commits)
    drm/edid: add displayid detailed 1 timings to the modelist. (v1.1)
    drm/edid: move displayid validation to it's own function.
    drm/displayid: Iterate over all DisplayID blocks
    drm/edid: move displayid tiled block parsing into separate function.
    drm: Nuke ->vblank_disable_allowed
    drm/vmwgfx: Report vmwgfx version to vmware.log
    drm/vmwgfx: Add VMWare host messaging capability
    drm/vmwgfx: Kill some lockdep warnings
    drm/nouveau/gr/gf100-: fix race condition in fecs/gpccs ucode
    drm/nouveau/core: recognise GM108 chipsets
    drm/nouveau/gr/gm107-: fix touching non-existent ppcs in attrib cb setup
    drm/nouveau/gr/gk104-: share implementation of ppc exception init
    drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctx
    drm/nouveau/bios/pll: check BIT table version before trying to parse it
    drm/nouveau/bios/pll: prevent oops when limits table can't be parsed
    drm/nouveau/volt/gk104: round up in gk104_volt_set
    drm/nouveau/fb/gm200: setup mmu debug buffer registers at init()
    drm/nouveau/fb/gk20a,gm20b: setup mmu debug buffer registers at init()
    drm/nouveau/fb/gf100-: allocate mmu debug buffers
    drm/nouveau/fb: allow chipset-specific actions for oneinit()
    ...

    Linus Torvalds
     
  • Signed-off-by: Andrea Gelmini
    Signed-off-by: Chris Metcalf

    Andrea Gelmini