1. 22 Mar, 2016 3 commits
  2. 21 Mar, 2016 6 commits
    • Catalin Marinas's avatar
      kvm: arm64: Disable compiler instrumentation for hypervisor code · a6cdf1c0
      Catalin Marinas authored
      With the recent rewrite of the arm64 KVM hypervisor code in C, enabling
      certain options like KASAN would allow the compiler to generate memory
      accesses or function calls to addresses not mapped at EL2. This patch
      disables the compiler instrumentation on the arm64 hypervisor code for
      gcov-based profiling (GCOV_KERNEL), undefined behaviour sanity checker
      (UBSAN) and kernel address sanitizer (KASAN).
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Cc: Christoffer Dall <christoffer.dall@linaro.org>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: <stable@vger.kernel.org> # 4.5+
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      a6cdf1c0
    • Marc Zyngier's avatar
      arm64: KVM: Turn kvm_ksym_ref into a NOP on VHE · 2510ffe1
      Marc Zyngier authored
      When running with VHE, there is no need to translate kernel pointers
      to the EL2 memory space, since we're already there (and we have a much
      saner memory map to start with).
      
      Unfortunately, kvm_ksym_ref is getting in the way, and the first
      call into the "hypervisor" section is going to end up in fireworks,
      since we're now branching into nowhereland. Meh.
      
      A potential solution is to test if VHE is engaged or not, and only
      perform the translation in the negative case. With this in place,
      VHE is able to run again.
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      2510ffe1
    • Eric Auger's avatar
      KVM: arm/arm64: disable preemption when calling smp_call_function_many · 898f949f
      Eric Auger authored
      Preemption must be disabled when calling smp_call_function_many
      
      Reported-by: bartosz.wawrzyniak@tieto.com
      Signed-off-by: default avatarEric Auger <eric.auger@linaro.org>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      898f949f
    • Linus Torvalds's avatar
      Merge branch 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 643ad15d
      Linus Torvalds authored
      Pull x86 protection key support from Ingo Molnar:
       "This tree adds support for a new memory protection hardware feature
        that is available in upcoming Intel CPUs: 'protection keys' (pkeys).
      
        There's a background article at LWN.net:
      
            https://lwn.net/Articles/643797/
      
        The gist is that protection keys allow the encoding of
        user-controllable permission masks in the pte.  So instead of having a
        fixed protection mask in the pte (which needs a system call to change
        and works on a per page basis), the user can map a (handful of)
        protection mask variants and can change the masks runtime relatively
        cheaply, without having to change every single page in the affected
        virtual memory range.
      
        This allows the dynamic switching of the protection bits of large
        amounts of virtual memory, via user-space instructions.  It also
        allows more precise control of MMU permission bits: for example the
        executable bit is separate from the read bit (see more about that
        below).
      
        This tree adds the MM infrastructure and low level x86 glue needed for
        that, plus it adds a high level API to make use of protection keys -
        if a user-space application calls:
      
              mmap(..., PROT_EXEC);
      
        or
      
              mprotect(ptr, sz, PROT_EXEC);
      
        (note PROT_EXEC-only, without PROT_READ/WRITE), the kernel will notice
        this special case, and will set a special protection key on this
        memory range.  It also sets the appropriate bits in the Protection
        Keys User Rights (PKRU) register so that the memory becomes unreadable
        and unwritable.
      
        So using protection keys the kernel is able to implement 'true'
        PROT_EXEC on x86 CPUs: without protection keys PROT_EXEC implies
        PROT_READ as well.  Unreadable executable mappings have security
        advantages: they cannot be read via information leaks to figure out
        ASLR details, nor can they be scanned for ROP gadgets - and they
        cannot be used by exploits for data purposes either.
      
        We know about no user-space code that relies on pure PROT_EXEC
        mappings today, but binary loaders could start making use of this new
        feature to map binaries and libraries in a more secure fashion.
      
        There is other pending pkeys work that offers more high level system
        call APIs to manage protection keys - but those are not part of this
        pull request.
      
        Right now there's a Kconfig that controls this feature
        (CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) that is default enabled
        (like most x86 CPU feature enablement code that has no runtime
        overhead), but it's not user-configurable at the moment.  If there's
        any serious problem with this then we can make it configurable and/or
        flip the default"
      
      * 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
        x86/mm/pkeys: Fix mismerge of protection keys CPUID bits
        mm/pkeys: Fix siginfo ABI breakage caused by new u64 field
        x86/mm/pkeys: Fix access_error() denial of writes to write-only VMA
        mm/core, x86/mm/pkeys: Add execute-only protection keys support
        x86/mm/pkeys: Create an x86 arch_calc_vm_prot_bits() for VMA flags
        x86/mm/pkeys: Allow kernel to modify user pkey rights register
        x86/fpu: Allow setting of XSAVE state
        x86/mm: Factor out LDT init from context init
        mm/core, x86/mm/pkeys: Add arch_validate_pkey()
        mm/core, arch, powerpc: Pass a protection key in to calc_vm_flag_bits()
        x86/mm/pkeys: Actually enable Memory Protection Keys in the CPU
        x86/mm/pkeys: Add Kconfig prompt to existing config option
        x86/mm/pkeys: Dump pkey from VMA in /proc/pid/smaps
        x86/mm/pkeys: Dump PKRU with other kernel registers
        mm/core, x86/mm/pkeys: Differentiate instruction fetches
        x86/mm/pkeys: Optimize fault handling in access_error()
        mm/core: Do not enforce PKEY permissions on remote mm access
        um, pkeys: Add UML arch_*_access_permitted() methods
        mm/gup, x86/mm/pkeys: Check VMAs and PTEs for protection keys
        x86/mm/gup: Simplify get_user_pages() PTE bit handling
        ...
      643ad15d
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 24b5e20f
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "The main changes are:
      
         - Use separate EFI page tables when executing EFI firmware code.
           This isolates the EFI context from the rest of the kernel, which
           has security and general robustness advantages.  (Matt Fleming)
      
         - Run regular UEFI firmware with interrupts enabled.  This is already
           the status quo under other OSs.  (Ard Biesheuvel)
      
         - Various x86 EFI enhancements, such as the use of non-executable
           attributes for EFI memory mappings.  (Sai Praneeth Prakhya)
      
         - Various arm64 UEFI enhancements.  (Ard Biesheuvel)
      
         - ... various fixes and cleanups.
      
        The separate EFI page tables feature got delayed twice already,
        because it's an intrusive change and we didn't feel confident about
        it - third time's the charm we hope!"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        x86/mm/pat: Fix boot crash when 1GB pages are not supported by the CPU
        x86/efi: Only map kernel text for EFI mixed mode
        x86/efi: Map EFI_MEMORY_{XP,RO} memory region bits to EFI page tables
        x86/mm/pat: Don't implicitly allow _PAGE_RW in kernel_map_pages_in_pgd()
        efi/arm*: Perform hardware compatibility check
        efi/arm64: Check for h/w support before booting a >4 KB granular kernel
        efi/arm: Check for LPAE support before booting a LPAE kernel
        efi/arm-init: Use read-only early mappings
        efi/efistub: Prevent __init annotations from being used
        arm64/vmlinux.lds.S: Handle .init.rodata.xxx and .init.bss sections
        efi/arm64: Drop __init annotation from handle_kernel_image()
        x86/mm/pat: Use _PAGE_GLOBAL bit for EFI page table mappings
        efi/runtime-wrappers: Run UEFI Runtime Services with interrupts enabled
        efi: Reformat GUID tables to follow the format in UEFI spec
        efi: Add Persistent Memory type name
        efi: Add NV memory attribute
        x86/efi: Show actual ending addresses in efi_print_memmap
        x86/efi/bgrt: Don't ignore the BGRT if the 'valid' bit is 0
        efivars: Use to_efivar_entry
        efi: Runtime-wrapper: Get rid of the rtc_lock spinlock
        ...
      24b5e20f
    • Linus Torvalds's avatar
      Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 26660a40
      Linus Torvalds authored
      Pull 'objtool' stack frame validation from Ingo Molnar:
       "This tree adds a new kernel build-time object file validation feature
        (ONFIG_STACK_VALIDATION=y): kernel stack frame correctness validation.
        It was written by and is maintained by Josh Poimboeuf.
      
        The motivation: there's a category of hard to find kernel bugs, most
        of them in assembly code (but also occasionally in C code), that
        degrades the quality of kernel stack dumps/backtraces.  These bugs are
        hard to detect at the source code level.  Such bugs result in
        incorrect/incomplete backtraces most of time - but can also in some
        rare cases result in crashes or other undefined behavior.
      
        The build time correctness checking is done via the new 'objtool'
        user-space utility that was written for this purpose and which is
        hosted in the kernel repository in tools/objtool/.  The tool's (very
        simple) UI and source code design is shaped after Git and perf and
        shares quite a bit of infrastructure with tools/perf (which tooling
        infrastructure sharing effort got merged via perf and is already
        upstream).  Objtool follows the well-known kernel coding style.
      
        Objtool does not try to check .c or .S files, it instead analyzes the
        resulting .o generated machine code from first principles: it decodes
        the instruction stream and interprets it.  (Right now objtool supports
        the x86-64 architecture.)
      
        From tools/objtool/Documentation/stack-validation.txt:
      
         "The kernel CONFIG_STACK_VALIDATION option enables a host tool named
          objtool which runs at compile time.  It has a "check" subcommand
          which analyzes every .o file and ensures the validity of its stack
          metadata.  It enforces a set of rules on asm code and C inline
          assembly code so that stack traces can be reliable.
      
          Currently it only checks frame pointer usage, but there are plans to
          add CFI validation for C files and CFI generation for asm files.
      
          For each function, it recursively follows all possible code paths
          and validates the correct frame pointer state at each instruction.
      
          It also follows code paths involving special sections, like
          .altinstructions, __jump_table, and __ex_table, which can add
          alternative execution paths to a given instruction (or set of
          instructions).  Similarly, it knows how to follow switch statements,
          for which gcc sometimes uses jump tables."
      
        When this new kernel option is enabled (it's disabled by default), the
        tool, if it finds any suspicious assembly code pattern, outputs
        warnings in compiler warning format:
      
          warning: objtool: rtlwifi_rate_mapping()+0x2e7: frame pointer state mismatch
          warning: objtool: cik_tiling_mode_table_init()+0x6ce: call without frame pointer save/setup
          warning: objtool:__schedule()+0x3c0: duplicate frame pointer save
          warning: objtool:__schedule()+0x3fd: sibling call from callable instruction with changed frame pointer
      
        ... so that scripts that pick up compiler warnings will notice them.
        All known warnings triggered by the tool are fixed by the tree, most
        of the commits in fact prepare the kernel to be warning-free.  Most of
        them are bugfixes or cleanups that stand on their own, but there are
        also some annotations of 'special' stack frames for justified cases
        such entries to JIT-ed code (BPF) or really special boot time code.
      
        There are two other long-term motivations behind this tool as well:
      
         - To improve the quality and reliability of kernel stack frames, so
           that they can be used for optimized live patching.
      
         - To create independent infrastructure to check the correctness of
           CFI stack frames at build time.  CFI debuginfo is notoriously
           unreliable and we cannot use it in the kernel as-is without extra
           checking done both on the kernel side and on the build side.
      
        The quality of kernel stack frames matters to debuggability as well,
        so IMO we can merge this without having to consider the live patching
        or CFI debuginfo angle"
      
      * 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
        objtool: Only print one warning per function
        objtool: Add several performance improvements
        tools: Copy hashtable.h into tools directory
        objtool: Fix false positive warnings for functions with multiple switch statements
        objtool: Rename some variables and functions
        objtool: Remove superflous INIT_LIST_HEAD
        objtool: Add helper macros for traversing instructions
        objtool: Fix false positive warnings related to sibling calls
        objtool: Compile with debugging symbols
        objtool: Detect infinite recursion
        objtool: Prevent infinite recursion in noreturn detection
        objtool: Detect and warn if libelf is missing and don't break the build
        tools: Support relative directory path for 'O='
        objtool: Support CROSS_COMPILE
        x86/asm/decoder: Use explicitly signed chars
        objtool: Enable stack metadata validation on 64-bit x86
        objtool: Add CONFIG_STACK_VALIDATION option
        objtool: Add tool to perform compile-time stack metadata validation
        x86/kprobes: Mark kretprobe_trampoline() stack frame as non-standard
        sched: Always inline context_switch()
        ...
      26660a40
  3. 20 Mar, 2016 16 commits
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 46e595a1
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "Driver updates for ARM SoCs, these contain various things that touch
        the drivers/ directory but got merged through arm-soc for practical
        reasons:
      
         - Rockchip rk3368 gains power domain support
         - Small updates for the ARM spmi driver
         - The Atmel PMC driver saw a larger rework, touching both
           arch/arm/mach-at91 and drivers/clk/at91
         - All reset controller driver changes alway get merged through
           arm-soc, though this time the largest change is the addition of a
           MIPS pistachio reset driver
         - One bugfix for the NXP (formerly Freescale) i.MX weim bus driver"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits)
        bus: imx-weim: Take the 'status' property value into account
        clk: at91: remove useless includes
        clk: at91: pmc: remove useless capacities handling
        clk: at91: pmc: drop at91_pmc_base
        usb: gadget: atmel: access the PMC using regmap
        ARM: at91: remove useless includes and function prototypes
        ARM: at91: pm: move idle functions to pm.c
        ARM: at91: pm: find and remap the pmc
        ARM: at91: pm: simply call at91_pm_init
        clk: at91: pmc: move pmc structures to C file
        clk: at91: pmc: merge at91_pmc_init in atmel_pmc_probe
        clk: at91: remove IRQ handling and use polling
        clk: at91: make use of syscon/regmap internally
        clk: at91: make use of syscon to share PMC registers in several drivers
        hwmon: (scpi) add energy meter support
        firmware: arm_scpi: add support for 64-bit sensor values
        firmware: arm_scpi: decrease Tx timeout to 20ms
        firmware: arm_scpi: fix send_message and sensor_get_value for big-endian
        reset: sti: Make reset_control_ops const
        reset: zynq: Make reset_control_ops const
        ...
      46e595a1
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e3b1f64e
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "As usual, a bunch of commits, mostly adding drivers and other options
        to defconfigs.
      
        The realview_smp_defconfig and realview_defconfig got merged into one,
        so we are now down to 110 files.
      
        For stm32, we have now added a Kconfig fragment, the first such file
        on arch/arm.  The purpose here is to have a shared defconfig file that
        works for all boards, while the DRAM offset has to be hardwired on
        NOMMU machines at compile time.
      
        The Exynos defconfig changes depend on changes in the RTC tree, so
        this is pulled in here, but has already been merged into 4.6 now"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
        ARM: imx_v4_v5_defconfig: Enable initramfs support
        ARM: imx_v4_v5_defconfig: Cleanup imx_v4_v5_defconfig
        ARM: multi_v7_defconfig: Enable LP872x regulator support
        ARM: omap2plus_defconfig: Enable LP872x regulator support
        ARM: mxs_defconfig: Enable initramfs support
        ARM: mxs_defconfig: Cleanup mxs_defconfig
        ARM: multi_v5_defconfig: Enable initramfs support
        ARM: multi_v5_defconfig: Cleanup multi_v5_defconfig
        ARM: multi_v7_defconfig: enable useful configurations for Vybrid
        ARM: multi_v7_defconfig: add MACH_ARTPEC6
        ARM: omap2plus_defconfig: Enable AT24 eeprom
        ARM: omap2plus_defconfig: Enable TI TVP5150 video decoder support
        ARM: omap2plus_defconfig: Enable ISP support and dependencies
        ARM: omap2plus_defconfig: Enable OMAP IOMMU support
        ARM: socfpga_defconfig: enable support for initramfs/initrd support
        ARM: at91/defconfig: add sama5d2 adc support in sama5_defconfig
        ARM: multi_v7_defconfig: Enable BCM283x
        ARM: bcm2835_defconfig: Enable RPi power domain driver
        ARM: bcm2835_defconfig: Enable RPi firmware driver
        ARM: bcm2835_defconfig: enable ARMv7 support
        ...
      e3b1f64e
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 915c56bc
      Linus Torvalds authored
      Pull ARM 64-bit DT updates from Arnd Bergmann:
       "The arm64 device tree changes make up an increasing portion of the
        overall changes, so they are kept separate from the 32-bit devicetree
        changes and from the other arm64 updates.
      
        Newly added SoCs and boards are:
         - 96Boards Husky board
         - AMD Overdrive board
         - Amlogic S905 SoC and related Tronsmart boxes
         - Annapurna Labs Alpine family and development board
         - Broadcom Vulcan servers
         - Broadcom Northstar 2 SoC
         - Marvell Armada 3700 family and development board
         - Qualcomm MSM8996 SoC
      
        Additional devices are enabled for existing platforms from Applied
        Micro, Hisilicon, Mediatek, Qualcomm, and Renesas and there are a
        couple of other updates for Rockchip, Xilinx and NXP/Freescale"
      
      * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (102 commits)
        ARM64: dts: amlogic: Add Tronsmart Vega S95 configs
        Documentation: devicetree: amlogic: Document Tronsmart Vega S95 boards
        ARM64: dts: Prepare configs for Amlogic Meson GXBaby
        Documentation: devicetree: amlogic: Document Meson GXBaby
        devicetree: bindings: Add vendor prefix for Tronsmart
        arm64: dts: qcom: Fix MPP's function used for LED control
        arm64: dts: alpine: add the MSIX node in the Alpine v2 dtsi
        arm64: dts: add the Alpine v2 EVP
        arm64: dts: marvell: re-order Device Tree nodes for Armada AP806
        arm64: dts: marvell: update Armada AP806 clock description
        arm64: dts: marvell: add Device Tree files for Armada 7K/8K
        arm64: dts: apm: Add DT node for X-Gene v2 SLIMpro Mailbox I2C Driver
        arm64: dts: apm: Mailbox device tree node for APM X-Gene v2 platform.
        arm64: dts: apm: Add DT node for X-Gene v1 SLIMpro Mailbox I2C Driver
        arm64: dts: apm: mailbox device tree node for APM X-Gene platform.
        arm64: dts: apm: Update GPIO to control power-off on X-Gene v2 platforms
        arm64: dts: apm: Update GPIO standby controller DT node for X-Gene v2 platforms
        arm64: dts: apm: Update GPIO to control power-off on X-Gene v1 platforms
        arm64: dts: salvator-x: enable USB 2.0 Host of channel 1 and 2
        arm64: dts: salvator-x: enable usb2_phy of channel 1 and 2
        ...
      915c56bc
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 5a6b7e53
      Linus Torvalds authored
      Pull ARM DT updates from Arnd Bergmann:
       "These are all the updates to device tree files for 32-bit platforms,
        plus a couple of related 64-bit updates:
      
        New SoC support:
         - Allwinner A83T
         - Axis Artpec-6 SoC
         - Mediatek MT7623 SoC
         - TI Keystone K2G SoC
         - ST Microelectronics stm32f469
      
        New board or machine support:
         - ARM Juno R2
         - Buffalo Linkstation LS-QVL and LS-GL
         - Cubietruck plus
         - D-Link DIR-885L
         - DT support for ARM RealView PB1176 and PB11MPCore
         - Google Nexus 7
         - Homlet v2
         - Itead Ibox
         - Lamobo R1
         - LG Optimus Black
         - Logicpd dm3730
         - Raspberry Pi Model A
      
        Other changes include
         - Lots of updates for Qualcomm APQ8064, MSM8974 and others
         - Improved support for Nokia N900 and other OMAP machines
         - Common clk support for lpc32xx
         - HDLCD display on ARM
         - Improved stm32f429 support
         - Improved Renesas device support, r8a779x and others
         - Lots of Rockchip updates
         - Samsung cleanups
         - ADC support for Atmel SAMA5D2
         - BCM2835 (Raspberry Pi) improvements
         - Broadcom Northstar Plus enhancements
         - OMAP GPMC rework
         - Several improvements for Atmel SAMA5D2 / Xplained
         - Global change to remove inofficial "arm,amba-bus" compatible
           string"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (350 commits)
        ARM, ARM64: dts: drop "arm,amba-bus" in favor of "simple-bus"
        ARM: dts: artpec: dual-license on artpec6.dtsi
        ARM: dts: ux500: add synaptics RMI4 for Ux500 TVK DT
        arm64: dts: juno/vexpress: fix node name unit-address presence warnings
        arm64: dts: foundation-v8: add SBSA Generic Watchdog device node
        ARM: dts: at91: sama5d2 Xplained: add leds node
        ARM: dts: at91: sama5d2 Xplained: add user push button
        ARM: dts: at91: sama5d2 Xplained: set pin muxing for usb gadget and usb host
        ARM: dts: stm32f429: Enable Ethernet on Eval board
        ARM: dts: omap3-sniper: TWL4030 keypad support
        Revert "ARM: dts: DRA7: Add dt nodes for PWMSS"
        ARM: dts: dm814x: dra62x: Disable wait pin monitoring for NAND
        ARM: dts: dm814x: dra62x: Fix NAND device nodes
        ARM: dts: stm32f429: Add Ethernet support
        ARM: dts: stm32f429: Add system config bank node
        ARM: dts: at91: sama5d2: add nand0 and nfc0 nodes
        ARM: dts: at91: sama5d2: add dma properties to UART nodes
        ARM: dts: at91: sama5d2 Xplained: Correct the macb irq pinctrl node
        ARM: dts: exynos: Don't overheat the Odroid XU3-Lite on high load
        ARM: dts: exynos: Add cooling levels for Exynos5422/5800 CPUs
        ...
      5a6b7e53
    • Linus Torvalds's avatar
      Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8c6d4082
      Linus Torvalds authored
      Pull ARM SoC 64-bit changes from Arnd Bergmann:
       "Here's our branch of ARM64 contents for this merge window, now
        containing all ARM64 changes other than device tree files.
      
         - Various new platforms get added:
            * Allwinner A64 SoC
            * Annapurna Labs Alpine SoCs
            * Broadcom Vulcan
            * Marvell Armada 3700 SoCs
            * Amlogic S905
      
         - Various defconfig changes to enable platform specific drivers
      
        This branch includes the clk git tree to resolve a build-time
        dependency"
      
      * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (48 commits)
        arm64: defconfig: Increase MMC_BLOCK_MINORS to 16
        arm64: defconfig: Add Qualcomm sdhci and restart functionality
        ARM64: Enable Amlogic Meson GXBaby platform
        arm64: defconfig: Enable Samsung MFD and related configs
        arm64: alpine: select the Alpine MSI controller driver
        arm64: defconfig: enable the Alpine family
        arm64: add Alpine SoC family
        arm64: defconfig: Enable exynos thermal config
        arm64: add defconfig options for Allwinner SoCs
        arm64: defconfig: Enable DesignWare APB GPIO controller
        arm64: defconfig: Add Renesas R-Car Gen3 USB 2.0 phy driver support
        arm64: EXYNOS: Consolidate ARCH_EXYNOS7 symbol into ARCH_EXYNOS
        clk: samsung: Don't build ARMv8 clock drivers on ARMv7
        MAINTAINERS: Add entry for Broadcom Vulcan SoC
        arm64: cputype info for Broadcom Vulcan
        arm64: Broadcom Vulcan support
        arm64: defconfig: Add Broadcom Vulcan to defconfig
        arm64: update ARCH_MVEBU for Marvell Armada 7K/8K support
        Documentation: arm: add Marvell Armada 7K and 8K families
        Documentation: arm: add link to Armada 38x Functional Spec
        ...
      8c6d4082
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 33b3d2e8
      Linus Torvalds authored
      Pull ARM SoC platform updates from Arnd Bergmann:
       "Newly added support for additional SoCs:
         - Axis Artpec-6 SoC family
         - Allwinner A83T SoC
         - Mediatek MT7623
         - NXP i.MX6QP SoC
         - ST Microelectronics stm32f469 microcontroller
      
        New features:
         - SMP support for Mediatek mt2701
         - Big-endian support for NXP i.MX
         - DaVinci now uses the new DMA engine dma_slave_map
         - OMAP now uses the new DMA engine dma_slave_map
         - earlyprintk support for palmchip uart on mach-tango
         - delay timer support for orion
      
        Other:
         - Exynos PMU driver moved out to drivers/soc/
         - Various smaller updates for Renesas, Xilinx, PXA, AT91, OMAP,
           uniphier"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
        ARM: uniphier: rework SMP code to support new System Bus binding
        ARM: uniphier: add missing of_node_put()
        ARM: at91: avoid defining CONFIG_* symbols in source code
        ARM: DRA7: hwmod: Add data for eDMA tpcc, tptc0, tptc1
        ARM: imx: Make reset_control_ops const
        ARM: imx: Do L2 errata only if the L2 cache isn't enabled
        ARM: imx: select ARM_CPU_SUSPEND only for imx6
        dmaengine: pxa_dma: fix the maximum requestor line
        ARM: alpine: select the Alpine MSI controller driver
        ARM: pxa: add the number of DMA requestor lines
        dmaengine: mmp-pdma: add number of requestors
        dma: mmp_pdma: Add the #dma-requests DT property documentation
        ARM: OMAP2+: Add rtc hwmod configuration for ti81xx
        ARM: s3c24xx: Avoid warning for inb/outb
        ARM: zynq: Move early printk virtual address to vmalloc area
        ARM: DRA7: hwmod: Add custom reset handler for PCIeSS
        ARM: SAMSUNG: Remove unused register offset definition
        ARM: EXYNOS: Cleanup header files inclusion
        drivers: soc: samsung: Enable COMPILE_TEST
        MAINTAINERS: Add maintainers entry for drivers/soc/samsung
        ...
      33b3d2e8
    • Linus Torvalds's avatar
      Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e88fa1b8
      Linus Torvalds authored
      Pull ARM SoC cleanups from Arnd Bergmann:
       "A few simple cleanups across multiple platforms, not much standing
        out:
      
         - lpc32xx removes its private implementation of the clk API, after
           generic code was merged in 4.5
         - all unused Makefile.boot files get removed
         - a number of simplifications for shmobile
         - asm/clkdev.h gets replaced with the asm-generic version after all
           mach/clkdev.h implementations are gone"
      
      * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: shmobile: Kconfig: Get rid of old comment
        ARM: shmobile: Consolidate SCU mapping code
        arm: lpc32xx: remove direct control of GPIOs from shared mach file
        arm: lpc32xx: remove selected HAVE_IDE
        arm: lpc32xx: switch to common clock framework
        ARM: Use generic clkdev.h header
        ARM: plat-versatile: Remove unused clock.c file
        ARM: netx: remove redundant "depends on ARCH_NETX"
        ARM: integrator: remove redundant select in Kconfig
        ARM: drop unused Makefile.boot of Multiplatform SoCs
        ARM: mvebu: add missing of_node_put()
        ARM: shmobile: r8a7779: Remove remainings of removed SCU boot setup code
        ARM: shmobile: Typo s/MIPDR/MPIDR/
        ARM: shmobile: Add includes providing forward declarations
        ARM: shmobile: rcar-gen2: Make rcar_gen2_dma_contiguous static
        ARM: mv78xx0: use "depends on" instead of "if" after prompt
      e88fa1b8
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · dae0b74e
      Linus Torvalds authored
      Pull ARM SoC non-urgent fixes from Arnd Bergmann:
       "As usual, we queue up a few fixes that don't seem urgent enough to go
        in through -rc.
      
         - a number of randconfig warning fixes from Arnd
         - various small fixes for OMAP
         - one somewhat larger patch to restore the OMAP3 cpuidle tuning that
           was lost in a cleanup
         - a small regression fix for cns3xxx PCI"
      
      * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
        CNS3xxx: Fix PCI cns3xxx_write_config()
        MAINTAINERS: unify email addrs for Kevin Hilman
        CNS3xxx: remove unused *_VIRT definitions
        ARM: OMAP2+: Fix hwmod clock for l4_ls
        soc: TI knav_qmss: fix dma_addr_t printing
        ARM: prima2: always enable reset controller
        ARM: socfpga: hide unused functions
        ARM: ux500: fix ureachable iounmap()
        ARM: ks8695: fix __initdata annotation
        ARM: mvebu: mark mvebu_hwcc_pci_nb as __maybe_unused
        ARM: mv78xx0: avoid unused function warning
        ARM: orion: only select I2C_BOARDINFO when using I2C
        ARM: OMAP2+: Fix out of range register access with syscon_config.max_register
        ARM: OMAP3: Add cpuidle parameters table for omap3430
        ARM: davinci: make I2C support optional
        ARM: davinci: DA8xx+DMx combined kernels need PATCH_PHYS_VIRT
        ARM: davinci: avoid unused mityomapl138_pn_info variable
        ARM: davinci: limit DT support to DA850
        ARM: DRA7: hwmod: Add reset data for PCIe
        ARM: DRA7: hwmod: Fix OCP2SCP sysconfig
        ...
      dae0b74e
    • Ard Biesheuvel's avatar
      x86/kallsyms: fix GOLD link failure with new relative kallsyms table format · 142b9e6c
      Ard Biesheuvel authored
      Commit 2213e9a6 ("kallsyms: add support for relative offsets in
      kallsyms address table") changed the default kallsyms symbol table
      format to use relative references rather than absolute addresses.
      
      This reduces the size of the kallsyms symbol table by 50% on 64-bit
      architectures, and further reduces the size of the relocation tables
      used by relocatable kernels.  Since the memory footprint of the static
      kernel image is always much smaller than 4 GB, these relative references
      are assumed to be representable in 32 bits, even when the native word
      size is 64 bits.
      
      On 64-bit architectures, this obviously only works if the distance
      between each relative reference and the chosen anchor point is
      representable in 32 bits, and so the table generation code in
      scripts/kallsyms.c scans the table for the lowest value that is covered
      by the kernel text, and selects it as the anchor point.
      
      However, when using the GOLD linker rather than the default BFD linker
      to build the x86_64 kernel, the symbol phys_offset_64, which is the
      result of arithmetic defined in the linker script, is emitted as a 'T'
      rather than an 'A' type symbol, resulting in scripts/kallsyms.c to
      mistake it for a suitable anchor point, even though it is far away from
      the actual kernel image in the virtual address space.  This results in
      out-of-range warnings from scripts/kallsyms.c and a broken build.
      
      So let's align with the BFD linker, and emit the phys_offset_[32|64]
      symbols as absolute symbols explicitly.  Note that the out of range
      issue does not exist on 32-bit x86, but this patch changes both symbols
      for symmetry.
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Guenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      142b9e6c
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · f0691533
      Linus Torvalds authored
      Pull virtio/vhost updates from Michael Tsirkin:
       "New features, performance improvements, cleanups:
      
         - basic polling support for vhost
         - rework virtio to optionally use DMA API, fixing it on Xen
         - balloon stats gained a new entry
         - using the new napi_alloc_skb speeds up virtio net
         - virtio blk stats can now be read while another VCPU is busy
           inflating or deflating the balloon
      
        plus misc cleanups in various places"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
        vhost_net: basic polling support
        vhost: introduce vhost_vq_avail_empty()
        vhost: introduce vhost_has_work()
        virtio_balloon: Allow to resize and update the balloon stats in parallel
        virtio_balloon: Use a workqueue instead of "vballoon" kthread
        virtio/s390: size of SET_IND payload
        virtio/s390: use dev_to_virtio
        vhost: rename vhost_init_used()
        vhost: rename cross-endian helpers
        virtio_blk: VIRTIO_BLK_F_WCE->VIRTIO_BLK_F_FLUSH
        vring: Use the DMA API on Xen
        virtio_pci: Use the DMA API if enabled
        virtio_mmio: Use the DMA API if enabled
        virtio: Add improved queue allocation API
        virtio_ring: Support DMA APIs
        vring: Introduce vring_use_dma_api()
        s390/dma: Allow per device dma ops
        alpha/dma: use common noop dma ops
        dma: Provide simple noop dma ops
      f0691533
    • Linus Torvalds's avatar
      Merge branch 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 2b2f72d8
      Linus Torvalds authored
      Pull mailbox updates from Jassi Brar:
      
       - mailbox bindings and drivers for
           * APM X-Gene
           * Hisilicon Hi6220
           * Rockchip RK3368
         platforms
      
       - minor fixes to the above three drivers.
      
       - misc cleanups of mailbox-test driver.
      
      * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
        mailbox: rockchip: avoid 64-bit division
        mailbox: rockchip: Add Rockchip mailbox driver
        dt-bindings: rockchip-mailbox: Add mailbox controller document on Rockchip SoCs
        mailbox/xgene-slimpro: Checking for IS_ERR instead of NULL
        mailbox: Hi6220: add mailbox driver
        dt-bindings: mailbox: Document Hi6220 mailbox driver
        mailbox: mailbox-test: add support for separate tx/rx buffer with single channel
        mailbox: mailbox-test: use print_hex_dump_bytes to allow dynamic printk
        mailbox: mailbox-test: fix the compatible string
        mailbox: mailbox-test: rename driver as generic test driver
        Documentation: mailbox: Add APM X-Gene SLIMpro mailbox dts documentation
        mailbox: Add support for APM X-Gene platform mailbox driver
      2b2f72d8
    • Linus Torvalds's avatar
      Merge tag 'xtensa-next-20160320' of git://github.com/czankel/xtensa-linux · fffad3e1
      Linus Torvalds authored
      Pull Xtensa updates from Chris Zankel:
       "Xtensa improvements for 4.6:
      
         - control whether perf IRQ is treated as NMI from Kconfig
         - implement ioremap for regions outside KIO segment
         - fix ISS serial port behaviour when EOF is reached
         - fix preemption in {clear,copy}_user_highpage
         - fix endianness issues for XTFPGA devices, big-endian cores are now
           fully functional
         - clean up debug infrastructure and add support for hardware
           breakpoints and watchpoints
         - add processor configurations for Three Core HiFi-2 MX and HiFi3
           cpus"
      
      * tag 'xtensa-next-20160320' of git://github.com/czankel/xtensa-linux:
        xtensa: add test_kc705_hifi variant
        xtensa: add Three Core HiFi-2 MX Variant.
        xtensa: support hardware breakpoints/watchpoints
        xtensa: use context structure for debug exceptions
        xtensa: remove remaining non-functional KGDB bits
        xtensa: clear all DBREAKC registers on start
        xtensa: xtfpga: fix earlycon endianness
        xtensa: xtfpga: fix i2c controller register width and endianness
        xtensa: xtfpga: fix ethernet controller endianness
        xtensa: xtfpga: fix serial port register width and endianness
        xtensa: define CONFIG_CPU_{BIG,LITTLE}_ENDIAN
        xtensa: fix preemption in {clear,copy}_user_highpage
        xtensa: ISS: don't hang if stdin EOF is reached
        xtensa: support ioremap for memory outside KIO region
        xtensa: use XTENSA_INT_LEVEL macro in asm/timex.h
        xtensa: make fake NMI configurable
      fffad3e1
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 1e75a9f3
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - new drivers for: NI 903x/913x watchdog driver, WinSystems EBC-C384
         watchdog timer and ARM SBSA watchdog driver
      
       - Support for NCT6102D devices
      
       - Improvements of the generic watchdog framework (improve restart
         handler, make set_timeout optional, introduce infrastructure
         triggered keepalives, ...
      
       - improvements on the pnx4008 watchdog driver
      
       - several smaller fixes and improvements
      
      * git://www.linux-watchdog.org/linux-watchdog: (28 commits)
        watchdog: Ensure that wdd is not dereferenced if NULL
        watchdog: imx2: Convert to use infrastructure triggered keepalives
        watchdog: dw_wdt: Convert to use watchdog infrastructure
        watchdog: Add support for minimum time between heartbeats
        watchdog: Make stop function optional
        watchdog: Introduce WDOG_HW_RUNNING flag
        watchdog: Introduce hardware maximum heartbeat in watchdog core
        watchdog: Make set_timeout function optional
        arm: lpc32xx: remove restart handler
        arm: lpc32xx: phy3250 remove restart hook
        watchdog: pnx4008: restart: support "cmd" from userspace
        watchdog: pnx4008: add support for soft reset
        watchdog: pnx4008: add restart handler
        watchdog: pnx4008: update logging during power-on
        watchdog: tangox_wdt: test clock rate to avoid division by 0
        watchdog: atlas7_wdt: test clock rate to avoid division by 0
        watchdog: s3c2410_wdt: Add max and min timeout values
        Watchdog: introduce ARM SBSA watchdog driver
        Documentation: add sbsa-gwdt driver documentation
        watchdog: Add watchdog timer support for the WinSystems EBC-C384
        ...
      1e75a9f3
    • Linus Torvalds's avatar
      Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 · 1c3d7700
      Linus Torvalds authored
      Pull firewire updates from Stefan Richter:
       "IEEE 1394 subsystem patches:
      
         - move away from outmoded timekeeping API
         - error reporting fix
         - documentation bits"
      
      * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
        firewire: ABI documentation: libhinawa uses firewire-cdev
        firewire: ABI documentation: jujuutils were renamed to linux-firewire-utils
        firewire: ohci: propagate return code from soft_reset to probe and resume
        firewire: nosy: Replace timeval with timespec64
      1c3d7700
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 3c2de27d
      Linus Torvalds authored
      Pull vfs updates from Al Viro:
      
       - Preparations of parallel lookups (the remaining main obstacle is the
         need to move security_d_instantiate(); once that becomes safe, the
         rest will be a matter of rather short series local to fs/*.c
      
       - preadv2/pwritev2 series from Christoph
      
       - assorted fixes
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (32 commits)
        splice: handle zero nr_pages in splice_to_pipe()
        vfs: show_vfsstat: do not ignore errors from show_devname method
        dcache.c: new helper: __d_add()
        don't bother with __d_instantiate(dentry, NULL)
        untangle fsnotify_d_instantiate() a bit
        uninline d_add()
        replace d_add_unique() with saner primitive
        quota: use lookup_one_len_unlocked()
        cifs_get_root(): use lookup_one_len_unlocked()
        nfs_lookup: don't bother with d_instantiate(dentry, NULL)
        kill dentry_unhash()
        ceph_fill_trace(): don't bother with d_instantiate(dn, NULL)
        autofs4: don't bother with d_instantiate(dentry, NULL) in ->lookup()
        configfs: move d_rehash() into configfs_create() for regular files
        ceph: don't bother with d_rehash() in splice_dentry()
        namei: teach lookup_slow() to skip revalidate
        namei: massage lookup_slow() to be usable by lookup_one_len_unlocked()
        lookup_one_len_unlocked(): use lookup_dcache()
        namei: simplify invalidation logics in lookup_dcache()
        namei: change calling conventions for lookup_{fast,slow} and follow_managed()
        ...
      3c2de27d
    • Linus Torvalds's avatar
      Merge branch 'stable-4.6' of git://git.infradead.org/users/pcmoore/audit · 51b3eae8
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "A small set of patches for audit this time; just three in total and
        one is a spelling fix.
      
        The two patches with actual content are designed to help prevent new
        instances of auditd from displacing an existing, functioning auditd
        and to generate a log of the attempt.  Not to worry, dead/stuck auditd
        instances can still be replaced by a new instance without problem.
      
        Nothing controversial, and everything passes our regression suite"
      
      * 'stable-4.6' of git://git.infradead.org/users/pcmoore/audit:
        audit: Fix typo in comment
        audit: log failed attempts to change audit_pid configuration
        audit: stop an old auditd being starved out by a new auditd
      51b3eae8
  4. 19 Mar, 2016 15 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · de06dbfa
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "Another mixture of changes this time around:
      
         - Split XIP linker file from main linker file to make it more
           maintainable, and various XIP fixes, and clean up a resulting
           macro.
      
         - Decompressor cleanups from Masahiro Yamada
      
         - Avoid printing an error for a missing L2 cache
      
         - Remove some duplicated symbols in System.map, and move
           vectors/stubs back into kernel VMA
      
         - Various low priority fixes from Arnd
      
         - Updates to allow bus match functions to return negative errno
           values, touching some drivers and the driver core.  Greg has acked
           these changes.
      
         - Virtualisation platform udpates form Jean-Philippe Brucker.
      
         - Security enhancements from Kees Cook
      
         - Rework some Kconfig dependencies and move PSCI idle management code
           out of arch/arm into drivers/firmware/psci.c
      
         - ARM DMA mapping updates, touching media, acked by Mauro.
      
         - Fix places in ARM code which should be using virt_to_idmap() so
           that Keystone2 can work.
      
         - Fix Marvell Tauros2 to work again with non-DT boots.
      
         - Provide a delay timer for ARM Orion platforms"
      
      * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (45 commits)
        ARM: 8546/1: dma-mapping: refactor to fix coherent+cma+gfp=0
        ARM: 8547/1: dma-mapping: store buffer information
        ARM: 8543/1: decompressor: rename suffix_y to compress-y
        ARM: 8542/1: decompressor: merge piggy.*.S and simplify Makefile
        ARM: 8541/1: decompressor: drop redundant FORCE in Makefile
        ARM: 8540/1: decompressor: use clean-files instead of extra-y to clean files
        ARM: 8539/1: decompressor: drop more unneeded assignments to "targets"
        ARM: 8538/1: decompressor: drop unneeded assignments to "targets"
        ARM: 8532/1: uncompress: mark putc as inline
        ARM: 8531/1: turn init_new_context into an inline function
        ARM: 8530/1: remove VIRT_TO_BUS
        ARM: 8537/1: drop unused DEBUG_RODATA from XIP_KERNEL
        ARM: 8536/1: mm: hide __start_rodata_section_aligned for non-debug builds
        ARM: 8535/1: mm: DEBUG_RODATA makes no sense with XIP_KERNEL
        ARM: 8534/1: virt: fix hyp-stub build for pre-ARMv7 CPUs
        ARM: make the physical-relative calculation more obvious
        ARM: 8512/1: proc-v7.S: Adjust stack address when XIP_KERNEL
        ARM: 8411/1: Add default SPARSEMEM settings
        ARM: 8503/1: clk_register_clkdev: remove format string interface
        ARM: 8529/1: remove 'i' and 'zi' targets
        ...
      de06dbfa
    • Linus Torvalds's avatar
      Merge tag 'tag-sh-for-4.6' of git://git.libc.org/linux-sh · b31a3bc3
      Linus Torvalds authored
      Pull arch/sh updates from Rich Felker:
       "This includes minor cleanups, a fix for a crash that likely affects
        all sh models with MMU, and introduction of a framework for boards
        described by device tree, which sets the stage for future J2 support"
      
      * tag 'tag-sh-for-4.6' of git://git.libc.org/linux-sh:
        sched/preempt, sh: kmap_coherent relies on disabled preemption
        sh: add SMP method selection to device tree pseudo-board
        sh: add device tree support and generic board using device tree
        sh: remove arch-specific localtimer and use generic one
        sh: make MMU-specific SMP code conditional on CONFIG_MMU
        sh: provide unified syscall trap compatible with all SH models
        sh: New gcc support
        sh: Disable trace for kernel uncompressing.
        sh: Use generic clkdev.h header
      b31a3bc3
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d5e2d008
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "This was delayed a day or two by some build-breakage on old toolchains
        which we've now fixed.
      
        There's two PCI commits both acked by Bjorn.
      
        There's one commit to mm/hugepage.c which is (co)authored by Kirill.
      
        Highlights:
         - Restructure Linux PTE on Book3S/64 to Radix format from Paul
           Mackerras
         - Book3s 64 MMU cleanup in preparation for Radix MMU from Aneesh
           Kumar K.V
         - Add POWER9 cputable entry from Michael Neuling
         - FPU/Altivec/VSX save/restore optimisations from Cyril Bur
         - Add support for new ftrace ABI on ppc64le from Torsten Duwe
      
        Various cleanups & minor fixes from:
         - Adam Buchbinder, Andrew Donnellan, Balbir Singh, Christophe Leroy,
           Cyril Bur, Luis Henriques, Madhavan Srinivasan, Pan Xinhui, Russell
           Currey, Sukadev Bhattiprolu, Suraj Jitindar Singh.
      
        General:
         - atomics: Allow architectures to define their own __atomic_op_*
           helpers from Boqun Feng
         - Implement atomic{, 64}_*_return_* variants and acquire/release/
           relaxed variants for (cmp)xchg from Boqun Feng
         - Add powernv_defconfig from Jeremy Kerr
         - Fix BUG_ON() reporting in real mode from Balbir Singh
         - Add xmon command to dump OPAL msglog from Andrew Donnellan
         - Add xmon command to dump process/task similar to ps(1) from Douglas
           Miller
         - Clean up memory hotplug failure paths from David Gibson
      
        pci/eeh:
         - Redesign SR-IOV on PowerNV to give absolute isolation between VFs
           from Wei Yang.
         - EEH Support for SRIOV VFs from Wei Yang and Gavin Shan.
         - PCI/IOV: Rename and export virtfn_{add, remove} from Wei Yang
         - PCI: Add pcibios_bus_add_device() weak function from Wei Yang
         - MAINTAINERS: Update EEH details and maintainership from Russell
           Currey
      
        cxl:
         - Support added to the CXL driver for running on both bare-metal and
           hypervisor systems, from Christophe Lombard and Frederic Barrat.
         - Ignore probes for virtual afu pci devices from Vaibhav Jain
      
        perf:
         - Export Power8 generic and cache events to sysfs from Sukadev
           Bhattiprolu
         - hv-24x7: Fix usage with chip events, display change in counter
           values, display domain indices in sysfs, eliminate domain suffix in
           event names, from Sukadev Bhattiprolu
      
        Freescale:
         - Updates from Scott: "Highlights include 8xx optimizations, 32-bit
           checksum optimizations, 86xx consolidation, e5500/e6500 cpu
           hotplug, more fman and other dt bits, and minor fixes/cleanup"
      
      * tag 'powerpc-4.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (179 commits)
        powerpc: Fix unrecoverable SLB miss during restore_math()
        powerpc/8xx: Fix do_mtspr_cpu6() build on older compilers
        powerpc/rcpm: Fix build break when SMP=n
        powerpc/book3e-64: Use hardcoded mttmr opcode
        powerpc/fsl/dts: Add "jedec,spi-nor" flash compatible
        powerpc/T104xRDB: add tdm riser card node to device tree
        powerpc32: PAGE_EXEC required for inittext
        powerpc/mpc85xx: Add pcsphy nodes to FManV3 device tree
        powerpc/mpc85xx: Add MDIO bus muxing support to the board device tree(s)
        powerpc/86xx: Introduce and use common dtsi
        powerpc/86xx: Update device tree
        powerpc/86xx: Move dts files to fsl directory
        powerpc/86xx: Switch to kconfig fragments approach
        powerpc/86xx: Update defconfigs
        powerpc/86xx: Consolidate common platform code
        powerpc32: Remove one insn in mulhdu
        powerpc32: small optimisation in flush_icache_range()
        powerpc: Simplify test in __dma_sync()
        powerpc32: move xxxxx_dcache_range() functions inline
        powerpc32: Remove clear_pages() and define clear_page() inline
        ...
      d5e2d008
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 31e18236
      Linus Torvalds authored
      Pull DeviceTree updates from Rob Herring:
      
       - new tool 'dtx_diff' to diff DT files
      
       - sync kernel's dtc/libfdt to current dtc repo master
      
       - fix for reserved memory regions located in highmem
      
       - document standard unit suffixes for DT properties
      
       - various DT binding doc updates
      
      * tag 'devicetree-for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of: Add vendor prefix for eGalax_eMPIA Technology Inc
        Input: ads7846: Add description how to use internal reference (ADS7846)
        ARM: realview: add EB syscon variants to bindings
        devicetree: bindings: ARM: Use "uV" for micro-volt
        serial: fsl-imx-uart: Fix typo in fsl,dte-mode description
        of: add 'const' for of_property_*_string*() parameter '*np'
        of/unittest: fix infinite loop in of_unittest_destroy_tracked_overlays()
        of: alloc anywhere from memblock if range not specified
        kbuild: Allow using host dtc instead of kernel's copy
        of: resolver: Add missing of_node_get and of_node_put
        of: Add United Radiant Technology Corporation vendor prefix
        dt/bindings: add documentation on standard property unit suffixes
        scripts/dtc: Update to upstream commit b06e55c88b9b
        ARM: boot: Add an implementation of strnlen for libfdt
        scripts/dtc: dtx_diff - add info to error message
        dtc: create tool to diff device trees
      31e18236
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 1200b680
      Linus Torvalds authored
      Pull networking updates from David Miller:
       "Highlights:
      
         1) Support more Realtek wireless chips, from Jes Sorenson.
      
         2) New BPF types for per-cpu hash and arrap maps, from Alexei
            Starovoitov.
      
         3) Make several TCP sysctls per-namespace, from Nikolay Borisov.
      
         4) Allow the use of SO_REUSEPORT in order to do per-thread processing
         of incoming TCP/UDP connections.  The muxing can be done using a
         BPF program which hashes the incoming packet.  From Craig Gallek.
      
         5) Add a multiplexer for TCP streams, to provide a messaged based
            interface.  BPF programs can be used to determine the message
            boundaries.  From Tom Herbert.
      
         6) Add 802.1AE MACSEC support, from Sabrina Dubroca.
      
         7) Avoid factorial complexity when taking down an inetdev interface
            with lots of configured addresses.  We were doing things like
            traversing the entire address less for each address removed, and
            flushing the entire netfilter conntrack table for every address as
            well.
      
         8) Add and use SKB bulk free infrastructure, from Jesper Brouer.
      
         9) Allow offloading u32 classifiers to hardware, and implement for
            ixgbe, from John Fastabend.
      
        10) Allow configuring IRQ coalescing parameters on a per-queue basis,
            from Kan Liang.
      
        11) Extend ethtool so that larger link mode masks can be supported.
            From David Decotigny.
      
        12) Introduce devlink, which can be used to configure port link types
            (ethernet vs Infiniband, etc.), port splitting, and switch device
            level attributes as a whole.  From Jiri Pirko.
      
        13) Hardware offload support for flower classifiers, from Amir Vadai.
      
        14) Add "Local Checksum Offload".  Basically, for a tunneled packet
            the checksum of the outer header is 'constant' (because with the
            checksum field filled into the inner protocol header, the payload
            of the outer frame checksums to 'zero'), and we can take advantage
            of that in various ways.  From Edward Cree"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1548 commits)
        bonding: fix bond_get_stats()
        net: bcmgenet: fix dma api length mismatch
        net/mlx4_core: Fix backward compatibility on VFs
        phy: mdio-thunder: Fix some Kconfig typos
        lan78xx: add ndo_get_stats64
        lan78xx: handle statistics counter rollover
        RDS: TCP: Remove unused constant
        RDS: TCP: Add sysctl tunables for sndbuf/rcvbuf on rds-tcp socket
        net: smc911x: convert pxa dma to dmaengine
        team: remove duplicate set of flag IFF_MULTICAST
        bonding: remove duplicate set of flag IFF_MULTICAST
        net: fix a comment typo
        ethernet: micrel: fix some error codes
        ip_tunnels, bpf: define IP_TUNNEL_OPTS_MAX and use it
        bpf, dst: add and use dst_tclassid helper
        bpf: make skb->tc_classid also readable
        net: mvneta: bm: clarify dependencies
        cls_bpf: reset class and reuse major in da
        ldmvsw: Checkpatch sunvnet.c and sunvnet_common.c
        ldmvsw: Add ldmvsw.c driver code
        ...
      1200b680
    • Linus Torvalds's avatar
      Merge branch 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 6b5f04b6
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "cgroup changes for v4.6-rc1.  No userland visible behavior changes in
        this pull request.  I'll send out a separate pull request for the
        addition of cgroup namespace support.
      
         - The biggest change is the revamping of cgroup core task migration
           and controller handling logic.  There are quite a few places where
           controllers and tasks are manipulated.  Previously, many of those
           places implemented custom operations for each specific use case
           assuming specific starting conditions.  While this worked, it makes
           the code fragile and difficult to follow.
      
           The bulk of this pull request restructures these operations so that
           most related operations are performed through common helpers which
           implement recursive (subtrees are always processed consistently)
           and idempotent (they make cgroup hierarchy converge to the target
           state rather than performing operations assuming specific starting
           conditions).  This makes the code a lot easier to understand,
           verify and extend.
      
         - Implicit controller support is added.  This is primarily for using
           perf_event on the v2 hierarchy so that perf can match cgroup v2
           path without requiring the user to do anything special.  The kernel
           portion of perf_event changes is acked but userland changes are
           still pending review.
      
         - cgroup_no_v1= boot parameter added to ease testing cgroup v2 in
           certain environments.
      
         - There is a regression introduced during v4.4 devel cycle where
           attempts to migrate zombie tasks can mess up internal object
           management.  This was fixed earlier this week and included in this
           pull request w/ stable cc'd.
      
         - Misc non-critical fixes and improvements"
      
      * 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (44 commits)
        cgroup: avoid false positive gcc-6 warning
        cgroup: ignore css_sets associated with dead cgroups during migration
        Documentation: cgroup v2: Trivial heading correction.
        cgroup: implement cgroup_subsys->implicit_on_dfl
        cgroup: use css_set->mg_dst_cgrp for the migration target cgroup
        cgroup: make cgroup[_taskset]_migrate() take cgroup_root instead of cgroup
        cgroup: move migration destination verification out of cgroup_migrate_prepare_dst()
        cgroup: fix incorrect destination cgroup in cgroup_update_dfl_csses()
        cgroup: Trivial correction to reflect controller.
        cgroup: remove stale item in cgroup-v1 document INDEX file.
        cgroup: update css iteration in cgroup_update_dfl_csses()
        cgroup: allocate 2x cgrp_cset_links when setting up a new root
        cgroup: make cgroup_calc_subtree_ss_mask() take @this_ss_mask
        cgroup: reimplement rebind_subsystems() using cgroup_apply_control() and friends
        cgroup: use cgroup_apply_enable_control() in cgroup creation path
        cgroup: combine cgroup_mutex locking and offline css draining
        cgroup: factor out cgroup_{apply|finalize}_control() from cgroup_subtree_control_write()
        cgroup: introduce cgroup_{save|propagate|restore}_control()
        cgroup: make cgroup_drain_offline() and cgroup_apply_control_{disable|enable}() recursive
        cgroup: factor out cgroup_apply_control_enable() from cgroup_subtree_control_write()
        ...
      6b5f04b6
    • Eric Dumazet's avatar
      bonding: fix bond_get_stats() · fe30937b
      Eric Dumazet authored
      bond_get_stats() can be called from rtnetlink (with RTNL held)
      or from /proc/net/dev seq handler (with RCU held)
      
      The logic added in commit 5f0c5f73 ("bonding: make global bonding
      stats more reliable") kind of assumed only one cpu could run there.
      
      If multiple threads are reading /proc/net/dev, stats can be really
      messed up after a while.
      
      A second problem is that some fields are 32bit, so we need to properly
      handle the wrap around problem.
      
      Given that RTNL is not always held, we need to use
      bond_for_each_slave_rcu().
      
      Fixes: 5f0c5f73 ("bonding: make global bonding stats more reliable")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Andy Gospodarek <gospo@cumulusnetworks.com>
      Cc: Jay Vosburgh <j.vosburgh@gmail.com>
      Cc: Veaceslav Falico <vfalico@gmail.com>
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fe30937b
    • Eric Dumazet's avatar
      net: bcmgenet: fix dma api length mismatch · eee57723
      Eric Dumazet authored
      When un-mapping skb->data in __bcmgenet_tx_reclaim(),
      we must use the length that was used in original dma_map_single(),
      instead of skb->len that might be bigger (includes the frags)
      
      We simply can store skb_len into tx_cb_ptr->dma_len and use it
      at unmap time.
      
      Fixes: 1c1008c7 ("net: bcmgenet: add main driver file")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eee57723
    • Eli Cohen's avatar
      net/mlx4_core: Fix backward compatibility on VFs · 76e39ccf
      Eli Cohen authored
      Commit 85743f1e ("net/mlx4_core: Set UAR page size to 4KB regardless
      of system page size") introduced dependency where old VF drivers without
      this fix fail to load if the PF driver runs with this commit.
      
      To resolve this add a module parameter which disables that functionality
      by default.  If both the PF and VFs are running with a driver with that
      commit the administrator may set the module param to true.
      
      The module parameter is called enable_4k_uar.
      
      Fixes: 85743f1e ('net/mlx4_core: Set UAR page size to 4KB ...')
      Signed-off-by: default avatarEli Cohen <eli@mellanox.com>
      Tested-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      76e39ccf
    • Linus Torvalds's avatar
      Merge branch 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · fcab86ad
      Linus Torvalds authored
      Pull libata updates from Tejun Heo:
      
       - ahci grew runtime power management support so that the controller can
         be turned off if no devices are attached.
      
       - sata_via isn't dead yet.  It got hotplug support and more refined
         workaround for certain WD drives.
      
       - Misc cleanups.  There's a merge from for-4.5-fixes to avoid confusing
         conflicts in ahci PCI ID table.
      
      * 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: ahci_xgene: dereferencing uninitialized pointer in probe
        AHCI: Remove obsolete Intel Lewisburg SATA RAID device IDs
        ata: sata_rcar: Use ARCH_RENESAS
        sata_via: Implement hotplug for VT6421
        sata_via: Apply WD workaround only when needed on VT6421
        ahci: Add runtime PM support for the host controller
        ahci: Add functions to manage runtime PM of AHCI ports
        ahci: Convert driver to use modern PM hooks
        ahci: Cache host controller version
        scsi: Drop runtime PM usage count after host is added
        scsi: Set request queue runtime PM status back to active on resume
        block: Add blk_set_runtime_active()
        ata: ahci_mvebu: add support for Armada 3700 variant
        libata: fix unbalanced spin_lock_irqsave/spin_unlock_irq() in ata_scsi_park_show()
        libata: support AHCI on OCTEON platform
      fcab86ad
    • Linus Torvalds's avatar
      Merge branch 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · ef504fa5
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Three trivial workqueue changes"
      
      * 'for-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Fix comment for work_on_cpu()
        sched/core: Get rid of 'cpu' argument in wq_worker_sleeping()
        workqueue: Replace usage of init_name with dev_set_name()
      ef504fa5
    • Andreas Färber's avatar
      phy: mdio-thunder: Fix some Kconfig typos · e2ad1f97
      Andreas Färber authored
      Drop two extra occurrences of "on" in option title and help text.
      
      Fixes: 379d7ac7 ("phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses.")
      Cc: David Daney <david.daney@cavium.com>
      Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
      Acked-by: default avatarDavid Daney <david.daney@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e2ad1f97
    • Woojung Huh's avatar
      lan78xx: add ndo_get_stats64 · a59f8c5b
      Woojung Huh authored
      Add lan78xx_get_stats64 of ndo_get_stats64 to report
      all statistics counters including errors from HW statistics.
      
      Read from HW when auto suspend is disabled, use saved counter when
      auto suspend is enabled because periodic call to ndo_get_stats64
      prevents USB auto suspend.
      Signed-off-by: default avatarWoojung Huh <woojung.huh@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a59f8c5b
    • Woojung Huh's avatar
      lan78xx: handle statistics counter rollover · 20ff5565
      Woojung Huh authored
      Update to handle statistics counter rollover.
      Check statistics counter periodically and compensate it when
      counter value rolls over at max (20 or 32bits).
      
      Simple mechanism adjusts monitoring timer to allow USB auto suspend.
      Signed-off-by: default avatarWoojung Huh <woojung.huh@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20ff5565
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 814a2bf9
      Linus Torvalds authored
      Merge second patch-bomb from Andrew Morton:
      
       - a couple of hotfixes
      
       - the rest of MM
      
       - a new timer slack control in procfs
      
       - a couple of procfs fixes
      
       - a few misc things
      
       - some printk tweaks
      
       - lib/ updates, notably to radix-tree.
      
       - add my and Nick Piggin's old userspace radix-tree test harness to
         tools/testing/radix-tree/.  Matthew said it was a godsend during the
         radix-tree work he did.
      
       - a few code-size improvements, switching to __always_inline where gcc
         screwed up.
      
       - partially implement character sets in sscanf
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (118 commits)
        sscanf: implement basic character sets
        lib/bug.c: use common WARN helper
        param: convert some "on"/"off" users to strtobool
        lib: add "on"/"off" support to kstrtobool
        lib: update single-char callers of strtobool()
        lib: move strtobool() to kstrtobool()
        include/linux/unaligned: force inlining of byteswap operations
        include/uapi/linux/byteorder, swab: force inlining of some byteswap operations
        include/asm-generic/atomic-long.h: force inlining of some atomic_long operations
        usb: common: convert to use match_string() helper
        ide: hpt366: convert to use match_string() helper
        ata: hpt366: convert to use match_string() helper
        power: ab8500: convert to use match_string() helper
        power: charger_manager: convert to use match_string() helper
        drm/edid: convert to use match_string() helper
        pinctrl: convert to use match_string() helper
        device property: convert to use match_string() helper
        lib/string: introduce match_string() helper
        radix-tree tests: add test for radix_tree_iter_next
        radix-tree tests: add regression3 test
        ...
      814a2bf9