1. 02 Aug, 2016 8 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20160801' of git://git.infradead.org/linux-mtd · affe8a2a
      Linus Torvalds authored
      Pull MTD updates from Brian Norris:
       "NAND:
      
          Quoting Boris:
           'This pull request contains only one notable change:
             - Addition of the MTK NAND controller driver
      
            And a bunch of specific NAND driver improvements/fixes. Here are the
            changes that are worth mentioning:
             - A few fixes/improvements for the xway NAND controller driver
             - A few fixes for the sunxi NAND controller driver
             - Support for DMA in the sunxi NAND driver
             - Support for the sunxi NAND controller IP embedded in A23/A33 SoCs
             - Addition for bitflips detection in erased pages to the brcmnand driver
             - Support for new brcmnand IPs
             - Update of the OMAP-GPMC binding to support DMA channel description'
      
          In addition, some small fixes around error handling, etc., as well
          as one long-standing corner case issue (2.6.20, I think?) with
          writing 1 byte less than a page.
      
        NOR:
      
         - rework some error handling on reads and writes, so we can better
           handle (for instance) SPI controllers which have limitations on
           their maximum transfer size
      
         - add new Cadence Quad SPI flash controller driver
      
         - add new Atmel QSPI flash controller driver
      
         - add new Hisilicon SPI flash controller driver
      
         - support a few new flash, and update supported features on others
      
         - fix the logic used for detecting a fully-unlocked flash
      
        And other miscellaneous small fixes"
      
      * tag 'for-linus-20160801' of git://git.infradead.org/linux-mtd: (60 commits)
        mtd: spi-nor: don't build Cadence QuadSPI on non-ARM
        mtd: mtk-nor: remove duplicated include from mtk-quadspi.c
        mtd: nand: fix bug writing 1 byte less than page size
        mtd: update description of MTD_BCM47XXSFLASH symbol
        mtd: spi-nor: Add driver for Cadence Quad SPI Flash Controller
        mtd: spi-nor: Bindings for Cadence Quad SPI Flash Controller driver
        mtd: nand: brcmnand: Change BUG_ON in brcmnand_send_cmd
        mtd: pmcmsp-flash: Allocating too much in init_msp_flash()
        mtd: maps: sa1100-flash: potential NULL dereference
        mtd: atmel-quadspi: add driver for Atmel QSPI controller
        mtd: nand: omap2: fix return value check in omap_nand_probe()
        Documentation: atmel-quadspi: add binding file for Atmel QSPI driver
        mtd: spi-nor: add hisilicon spi-nor flash controller driver
        mtd: spi-nor: support dual, quad, and WP for Gigadevice
        mtd: spi-nor: Added support for n25q00a.
        memory: Update dependency of IFC for Layerscape
        mtd: nand: jz4780: Update MODULE_AUTHOR email address
        mtd: nand: sunxi: prevent a small memory leak
        mtd: nand: sunxi: add reset line support
        mtd: nand: sunxi: update DT bindings
        ...
      affe8a2a
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 44cee85a
      Linus Torvalds authored
      Pull misc kbuild updates from Michal Marek:
      
       - coccicheck script improvements by Luis Rodriguez and Deepa Dinamani
      
       - new coccinelle patches by Yann Droneaud and Vaishali Thakkar
      
       - debian packaging fixes by Wilfried Klaebe, Henning Schild and Marcin
         Mielniczuk
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        Fix the Debian packaging script on systems with no codename
        builddeb: fix file permissions before packaging
        scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci
        coccicheck: refer to Documentation/coccinelle.txt and wiki
        coccicheck: add support for requring a coccinelle version
        scripts: add Linux .cocciconfig for coccinelle
        coccicheck: replace --very-quiet with --quiet when debugging
        coccicheck: add support for DEBUG_FILE
        coccicheck: enable parmap support
        coccicheck: make SPFLAGS more useful
        coccicheck: move spatch binary check up
        builddeb: really include objtool binary in headers package
        coccinelle: catch krealloc() on devm_*() allocated memory
        coccinelle: recognize more devm_* memory allocation functions
        coccinelle: also catch kzfree() issues
        coccicheck: Allow for overriding spatch flags
        Coccinelle: noderef: Add new rules and correct the old rule
      44cee85a
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · f716a85c
      Linus Torvalds authored
      Pull kbuild updates from Michal Marek:
      
       - GCC plugin support by Emese Revfy from grsecurity, with a fixup from
         Kees Cook.  The plugins are meant to be used for static analysis of
         the kernel code.  Two plugins are provided already.
      
       - reduction of the gcc commandline by Arnd Bergmann.
      
       - IS_ENABLED / IS_REACHABLE macro enhancements by Masahiro Yamada
      
       - bin2c fix by Michael Tautschnig
      
       - setlocalversion fix by Wolfram Sang
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        gcc-plugins: disable under COMPILE_TEST
        kbuild: Abort build on bad stack protector flag
        scripts: Fix size mismatch of kexec_purgatory_size
        kbuild: make samples depend on headers_install
        Kbuild: don't add obj tree in additional includes
        Kbuild: arch: look for generated headers in obtree
        Kbuild: always prefix objtree in LINUXINCLUDE
        Kbuild: avoid duplicate include path
        Kbuild: don't add ../../ to include path
        vmlinux.lds.h: replace config_enabled() with IS_ENABLED()
        kconfig.h: allow to use IS_{ENABLE,REACHABLE} in macro expansion
        kconfig.h: use already defined macros for IS_REACHABLE() define
        export.h: use __is_defined() to check if __KSYM_* is defined
        kconfig.h: use __is_defined() to check if MODULE is defined
        kbuild: setlocalversion: print error to STDERR
        Add sancov plugin
        Add Cyclomatic complexity GCC plugin
        GCC plugin infrastructure
        Shared library support
      f716a85c
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 221bb8a4
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
      
       - ARM: GICv3 ITS emulation and various fixes.  Removal of the
         old VGIC implementation.
      
       - s390: support for trapping software breakpoints, nested
         virtualization (vSIE), the STHYI opcode, initial extensions
         for CPU model support.
      
       - MIPS: support for MIPS64 hosts (32-bit guests only) and lots
         of cleanups, preliminary to this and the upcoming support for
         hardware virtualization extensions.
      
       - x86: support for execute-only mappings in nested EPT; reduced
         vmexit latency for TSC deadline timer (by about 30%) on Intel
         hosts; support for more than 255 vCPUs.
      
       - PPC: bugfixes.
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (302 commits)
        KVM: PPC: Introduce KVM_CAP_PPC_HTM
        MIPS: Select HAVE_KVM for MIPS64_R{2,6}
        MIPS: KVM: Reset CP0_PageMask during host TLB flush
        MIPS: KVM: Fix ptr->int cast via KVM_GUEST_KSEGX()
        MIPS: KVM: Sign extend MFC0/RDHWR results
        MIPS: KVM: Fix 64-bit big endian dynamic translation
        MIPS: KVM: Fail if ebase doesn't fit in CP0_EBase
        MIPS: KVM: Use 64-bit CP0_EBase when appropriate
        MIPS: KVM: Set CP0_Status.KX on MIPS64
        MIPS: KVM: Make entry code MIPS64 friendly
        MIPS: KVM: Use kmap instead of CKSEG0ADDR()
        MIPS: KVM: Use virt_to_phys() to get commpage PFN
        MIPS: Fix definition of KSEGX() for 64-bit
        KVM: VMX: Add VMCS to CPU's loaded VMCSs before VMPTRLD
        kvm: x86: nVMX: maintain internal copy of current VMCS
        KVM: PPC: Book3S HV: Save/restore TM state in H_CEDE
        KVM: PPC: Book3S HV: Pull out TM state save/restore into separate procedures
        KVM: arm64: vgic-its: Simplify MAPI error handling
        KVM: arm64: vgic-its: Make vgic_its_cmd_handle_mapi similar to other handlers
        KVM: arm64: vgic-its: Turn device_id validation into generic ID validation
        ...
      221bb8a4
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · f7b32e4c
      Linus Torvalds authored
      Pull more s390 updates from Martin Schwidefsky:
      
       - some cleanup for the hugetlbfs pte/pmd conversion functions
      
       - the code to check for the minimum CPU type is converted from
         assembler to C and an informational message is added in case the CPU
         is not new enough to run the kernel
      
       - bug fixes
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/ftrace/jprobes: Fix conflict between jprobes and function graph tracing
        s390: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
        s390/zcrypt: fix possible memory leak in ap_module_init()
        s390/numa: only set possible nodes within node_possible_map
        s390/als: fix compile with gcov enabled
        s390/facilities: do not generate DWORDS define anymore
        s390/als: print missing facilities on facility mismatch
        s390/als: print machine type on facility mismatch
        s390/als: convert architecture level set code to C
        s390/sclp: move uninitialized data to data section
        s390/zcrypt: Fix zcrypt suspend/resume behavior
        s390/cio: fix premature wakeup during chp configure
        s390/cio: convert cfg_lock mutex to spinlock
        s390/mm: clean up pte/pmd encoding
      f7b32e4c
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux · 731c7d3a
      Linus Torvalds authored
      Merge drm updates from Dave Airlie:
       "This is the main drm pull request for 4.8.
      
        I'm down with a cold at the moment so hopefully this isn't in too bad
        a state, I finished pulling stuff last week mostly (nouveau fixes just
        went in today), so only this message should be influenced by illness.
        Apologies to anyone who's major feature I missed :-)
      
        Core:
              Lockless GEM BO freeing
              Non-blocking atomic work
              Documentation changes (rst/sphinx)
              Prep for new fencing changes
              Simple display helpers
              Master/auth changes
              Register/unregister rework
              Loads of trivial patches/fixes.
      
        New stuff:
              ARM Mali display driver (not the 3D chip)
              sii902x RGB->HDMI bridge
      
        Panel:
              Support for new panels
              Improved backlight support
      
        Bridge:
              Convert ADV7511 to bridge driver
              ADV7533 support
              TC358767 (DSI/DPI to eDP) encoder chip support
      
        i915:
              BXT support enabled by default
              GVT-g infrastructure
              GuC command submission and fixes
              BXT workarounds
              SKL/BKL workarounds
              Demidlayering device registration
              Thundering herd fixes
              Missing pci ids
              Atomic updates
      
        amdgpu/radeon:
              ATPX improvements for better dGPU power control on PX systems
              New power features for CZ/BR/ST
              Pipelined BO moves and evictions in TTM
              GPU scheduler improvements
              GPU reset improvements
              Overclocking on dGPUs with amdgpu
              Polaris powermanagement enabled
      
        nouveau:
              GK20A/GM20B volt and clock improvements.
              Initial support for GP100/GP104 GPUs, GP104 will not yet support
              acceleration due to NVIDIA having not released firmware for them as of yet.
      
        exynos:
              Exynos5433 SoC with IOMMU support.
      
        vc4:
              Shader validation for branching
      
        imx-drm:
              Atomic mode setting conversion
              Reworked DMFC FIFO allocation
              External bridge support
      
        analogix-dp:
              RK3399 eDP support
              Lots of fixes.
      
        rockchip:
              Lots of small fixes.
      
        msm:
              DT bindings cleanups
              Shrinker and madvise support
              ASoC HDMI codec support
      
        tegra:
              Host1x driver cleanups
              SOR reworking for DP support
              Runtime PM support
      
        omapdrm:
              PLL enhancements
              Header refactoring
              Gamma table support
      
        arcgpu:
              Simulator support
      
        virtio-gpu:
              Atomic modesetting fixes.
      
        rcar-du:
              Misc fixes.
      
        mediatek:
              MT8173 HDMI support
      
        sti:
              ASOC HDMI codec support
              Minor fixes
      
        fsl-dcu:
              Suspend/resume support
              Bridge support
      
        amdkfd:
              Minor fixes.
      
        etnaviv:
              Enable GPU clock gating
      
        hisilicon:
              Vblank and other fixes"
      
      * tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux: (1575 commits)
        drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
        drm/nouveau/acpi: fix lockup with PCIe runtime PM
        drm/nouveau/acpi: check for function 0x1B before using it
        drm/nouveau/acpi: return supported DSM functions
        drm/nouveau/acpi: ensure matching ACPI handle and supported functions
        drm/nouveau/fbcon: fix font width not divisible by 8
        drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events
        drm/amd/powerplay: move clockgating to after ungating power in pp for uvd/vce
        drm/amdgpu: add query device id and revision id into system info entry at CGS
        drm/amdgpu: add new definition in bif header
        drm/amd/powerplay: rename smum header guards
        drm/amdgpu: enable UVD context buffer for older HW
        drm/amdgpu: fix default UVD context size
        drm/amdgpu: fix incorrect type of info_id
        drm/amdgpu: make amdgpu_cgs_call_acpi_method as static
        drm/amdgpu: comment out unused defaults_staturn_pro static const structure to fix the build
        drm/amdgpu: enable UVD VM only on polaris
        drm/amdgpu: increase timeout of IB test
        drm/amdgpu: add destroy session when generate VCE destroy msg.
        drm/amd: fix deadlock of job_list_lock V2
        ...
      731c7d3a
    • Stephen Rothwell's avatar
      clocksource/drivers/clps_711x: fixup for "ARM: clps711x: · 77a87824
      Stephen Rothwell authored
       Switch to MULTIPLATFORM"
      
      Missed conflict between commit c86f5173 ("ARM: clps711x: Switch to
      MULTIPLATFORM") from the arm-soc tree and commit 250e46aa3bb3
      ("clocksource/drivers/clps_711x: Add the COMPILE_TEST option") from the
      clockevents tree.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      77a87824
    • Dave Airlie's avatar
      Merge branch 'linux-4.8' of git://github.com/skeggsb/linux into drm-next · 753e7c8c
      Dave Airlie authored
      Runtime PM fixes, fbcon and nv30 fix.
      * 'linux-4.8' of git://github.com/skeggsb/linux:
        drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
        drm/nouveau/acpi: fix lockup with PCIe runtime PM
        drm/nouveau/acpi: check for function 0x1B before using it
        drm/nouveau/acpi: return supported DSM functions
        drm/nouveau/acpi: ensure matching ACPI handle and supported functions
        drm/nouveau/fbcon: fix font width not divisible by 8
      753e7c8c
  2. 01 Aug, 2016 32 commits
    • Linus Torvalds's avatar
      Merge tag 'please-pull-misc-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · e48af7aa
      Linus Torvalds authored
      Pull ia64 updates from Tony Luck:
       "Miscellaneous ia64 cleanups"
      
      * tag 'please-pull-misc-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        ia64: salinfo: use a waitqueue instead a sema down/up combo
        ia64: efi: use timespec64 for persistent clock
      e48af7aa
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ed780686
      Linus Torvalds authored
      Pull 64-bit ARM DT updates from Olof Johansson:
       "Just as the 32-bit contents, the 64-bit device tree branch also
        contains a number of additions this release cycle.
      
        New platforms:
         - LG LG1313
         - Mediatek MT6755
         - Renesas r8a7796
         - Broadcom 2837
      
        Other platforms with larger updates are:
         - Nvidia X1 platforms (USB 3.0, regulators, display subsystem)
         - Mediatek MT8173 (display subsystem added)
         - Rockchip RK3399 (a lot of new peripherals)
         - ARM Juno reference implementation (SCPI power domains, coresight,
           thermal)"
      
      * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (118 commits)
        arm64: tegra: Enable HDMI on Jetson TX1
        arm64: tegra: Add sor1_src clock
        arm64: tegra: Add XUSB powergates on Tegra210
        arm64: tegra: Add DPAUX pinctrl bindings
        arm64: tegra: Add ACONNECT bus node for Tegra210
        arm64: tegra: Add audio powergate node for Tegra210
        arm64: tegra: Add regulators for Tegra210 Smaug
        arm64: tegra: Correct Tegra210 XUSB mailbox interrupt
        arm64: tegra: Enable XUSB controller on Jetson TX1
        arm64: tegra: Enable debug serial on Jetson TX1
        arm64: tegra: Add Tegra210 XUSB controller
        arm64: tegra: Add Tegra210 XUSB pad controller
        arm64: tegra: Add DSI panel on Jetson TX1
        arm64: tegra: p2597: Add SDMMC power supplies
        arm64: tegra: Add PMIC support on Jetson TX1
        Revert "ARM64: DTS: meson-gxbb: switch ethernet to real clock"
        arm64: dts: hi6220: Add pl031 RTC support
        arm64: dts: r8a7796/salvator-x: Enable watchdog timer
        arm64: dts: r8a7796: Add RWDT node
        arm64: dts: r8a7796: Use SYSC "always-on" PM Domain
        ...
      ed780686
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 043248cd
      Linus Torvalds authored
      Pull ARM DT updates from Olof Johansson:
       "Device tree contents continue to be the largest branches we submit.
        This time around, some of the contents worth pointing out is:
      
        New SoC platforms:
         - Freescale i.MX 7Solo
         - Broadcom BCM23550
         - Cirrus Logic EP7209 and EP7211 (clps711x platforms)_
         - Hisilicon HI3519
         - Renesas R8A7792
      
        Some of the other delta that is sticking out, line-count wise:
         - Exynos moves of IP blocks under an SoC bus, which causes a large
           delta due to indentation changes
         - a new Tegra K1 board: Apalis
         - a bunch of small updates to many Allwinner platforms; new hardware
           support, some cleanup, etc"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (426 commits)
        ARM: dts: sun8i: Add dts file for inet86dz board
        ARM: dts: sun8i: Add dts file for Polaroid MID2407PXE03 tablet
        ARM: dts: sun8i: Use sun8i-reference-design-tablet for ga10h dts
        ARM: dts: sun8i: Use sun8i-reference-design-tablet for polaroid mid2809pxe04
        ARM: dts: sun8i: reference-design-tablet: Add drivevbus-supply
        ARM: dts: Copy sun8i-q8-common.dtsi sun8i-reference-design-tablet.dtsi
        ARM: dts: sun5i: Use sun5i-reference-design-tablet.dtsi for utoo p66 dts
        ARM: dts: sun5i: Use sun5i-reference-design-tablet.dtsi for dit4350 dts
        ARM: dts: sun5i: reference-design-tablet: Remove mention of q8
        ARM: dts: sun5i: reference-design-tablet: Set lradc vref to avcc
        ARM: dts: sun5i: Rename sun5i-q8-common.dtsi sun5i-reference-design-tablet.dtsi
        ARM: dts: sun5i: Move q8 display bits to sun5i-a13-q8-tablet.dts
        ARM: dts: sunxi: Rename sunxi-q8-common.dtsi sunxi-reference-design-tablet.dtsi
        ARM: dts: at91: Don't build unnecessary dtbs
        ARM: dts: at91: sama5d3x: separate motherboard gmac and emac definitions
        ARM: dts: at91: at91sam9g25ek: fix isi endpoint node
        ARM: dts: at91: move isi definition to at91sam9g25ek
        ARM: dts: at91: fix i2c-gpio node name
        ARM: dts: at91: vinco: fix regulator name
        ARM: dts: at91: ariag25 : fix onewire node
        ...
      043248cd
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 43a0a98a
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Driver updates for ARM SoCs.
      
        A slew of changes this release cycle.  The reset driver tree, that we
        merge through arm-soc for historical reasons, is also sizable this
        time around.
      
        Among the changes:
      
         - clps711x: Treewide changes to compatible strings, merged here for simplicity.
         - Qualcomm: SCM firmware driver cleanups, move to platform driver
         - ux500: Major cleanups, removal of old mach-specific infrastructure.
         - Atmel external bus memory driver
         - Move of brcmstb platform to the rest of bcm
         - PMC driver updates for tegra, various fixes and improvements
         - Samsung platform driver updates to support 64-bit Exynos platforms
         - Reset controller cleanups moving to devm_reset_controller_register() APIs
         - Reset controller driver for Amlogic Meson
         - Reset controller driver for Hisilicon hi6220
         - ARM SCPI power domain support"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (100 commits)
        ARM: ux500: consolidate base platform files
        ARM: ux500: move soc_id driver to drivers/soc
        ARM: ux500: call ux500_setup_id later
        ARM: ux500: consolidate soc_device code in id.c
        ARM: ux500: remove cpu_is_u* helpers
        ARM: ux500: use CLK_OF_DECLARE()
        ARM: ux500: move l2x0 init to .init_irq
        mfd: db8500 stop passing around platform data
        ASoC: ab8500-codec: remove platform data based probe
        ARM: ux500: move ab8500_regulator_plat_data into driver
        ARM: ux500: remove unused regulator data
        soc: raspberrypi-power: add CONFIG_OF dependency
        firmware: scpi: add CONFIG_OF dependency
        video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip
        input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip
        pwm: clps711x: Changing the compatibility string to match with the smallest supported chip
        serial: clps711x: Changing the compatibility string to match with the smallest supported chip
        irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip
        clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip
        clk: clps711x: Changing the compatibility string to match with the smallest supported chip
        ...
      43a0a98a
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6911a528
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Olof Johansson:
       "Defconfig additions, removals, etc.
      
        Most of these are small changes adding the options for newly
        upstreamed drivers, or drivers needed for new board support.
      
        - removed Broadcom bcm_defconfig, targets are all covered in
          multi_v7_defconfig
      
        - new defconfig: multi_v4t_defconfig"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits)
        ARM: multi_v7_defconfig: enable STMicroelectronics DRM Support
        ARM: multi_v7_defconfig: enable STMicroelectronics BDISP 2D blitter driver
        ARM: omap2plus_defconfig: Fix USB selection to keep Ethernet working
        ARM: configs: lpc18xx: enable adc and dac iio drivers
        ARM: config: Add a multi_v4t_defconfig
        ARM: multi_v7_defconfig: add ACT8945A
        ARM: at91/defconfig: Add ACT8945A driver
        ARM: imx_v6_v7_defconfig: Select ADS7846 support
        ARM: configs: qualcomm: Add MDM9615 missing defconfigs
        ARM: multi_v7_defconfig: Enable vivid driver as a module
        ARM: exynos_defconfig: Enable vivid driver as a module
        ARM: defconfig: enable the MSM8660 pin controller
        ARM: imx_v6_v7_defconfig: enable USB FFS gadget
        ARM: socfpga: enable PL330 DMA in socfpga_defconfig
        ARM: socfpga: add PCIe to socfpga_defconfig
        ARM: multi_v7_defconfig: defconfig: Enable r8a7792 SoC
        ARM: shmobile: defconfig: Enable r8a7792 SoC
        ARM: Remove bcm_defconfig
        ARM: multi_v7_defconfig: Enable Broadcom Kona watchdog
        ARM: multi_v7_defconfig: Enable Broadcom STB PWM
        ...
      6911a528
    • Linus Torvalds's avatar
      Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 3fbff9c8
      Linus Torvalds authored
      Pull 64-bit ARM SoC updates from Olof Johansson:
       "Changes to platform code for 64-bit ARM platforms.
      
        Nearly all of these are defconfig updates to enable new drivers or old
        drivers still used on these 64-bit platforms.
      
        Added platforms for this release are:
      
         - Broadcom BCM2837
         - Renesas R8A7796"
      
      * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits)
        arm64: remove duplicate PWM entry in defconfig
        arm64: Update default configuration
        arm64: defconfig: Enable more IP blocks for Exynos7 and Exynos5433
        arm64: amlogic: select gxbb clk driver
        arm64: defconfig: Enable S2MPS11 clock and S3C RTC driver
        arm64: marvell: enable Armada 3700 clock drivers
        arm64: defconfig: enable msm8996 pinctrl support
        arm64: defconfig: Enable qcom msm8996 clk drivers
        arm: defconfig: Enable PM8941 pwr key
        arm64: defconfig: enable stmmac and realtek PHY as modules
        arm64: Kconfig: select PM{,_GENERIC_DOMAINS} for ARCH_VEXPRESS
        arm64: defconfig: enable SENSORS_ARM_SCPI
        arm64: defconfig: enable Generic on-chip SRAM driver
        arm64: configs: enable PCIe driver for Armada 7K/8K
        arm64: Add platform selection for BCM2835.
        arm64: defconfig: disable plain NEON implementation of AES
        arm64: Allow for different DMA and CPU bus offsets
        arm64: defconfig: enable Renesas R8A7796 SoC
        arm64: defconfig: Enable Cadence MACB/GEM support
        ARM64: Kconfig: Select the Amlogic Meson pin controller driver
        ...
      3fbff9c8
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fbae5cbb
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "Improved and new platform support for various SoCs:
      
        New SoC support:
         - Broadcom BCM23550
         - Freescale i.MX7Solo
         - Qualcomm MDM9615
         - Renesas r8a7792
      
        Improvements:
         - convert clps711x to multiplatform
         - debug uart improvements for Atmel platforms
         - Tango platform improvements: HOTPLUG_CPU, Suspend-to-ram
         - OMAP tweaks and improvements to hwmod
         - OMAP support for kexec on SMP"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (109 commits)
        ARM: davinci: fix build break because of undeclared dm365_evm_snd_data
        ARM: s3c64xx: smartq: Avoid sparse warnings
        ARM: sti: Implement dummy L2 cache's write_sec
        ARM: STi: Update machine _namestr to be more generic.
        arm: meson: explicitly select clk drivers
        ARM: tango: add Suspend-to-RAM support
        ARM: hisi: consolidate the hisilicon machine entries
        ARM: tango: fix CONFIG_HOTPLUG_CPU=n build
        MAINTAINERS: Update BCM281XX/BCM11XXX/BCM216XX entry
        MAINTAINERS: Update BCM63XX entry
        MAINTAINERS: Add NS2 entry
        MAINTAINERS: Fix nsp false-positives
        MAINTAINERS: Change L to M for Broadcom ARM/ARM64 SoC entries
        ARM: debug: Enable DEBUG_BCM_5301X for Northstar Plus SoCs
        ARM: clps711x: Switch to MULTIPLATFORM
        ARM: clps711x: Remove boards support
        ARM: clps711x: Add basic DT support
        ARM: clps711x: Reduce static map size
        ARM: SAMSUNG: Constify iomem address passed to s5p_init_cpu
        ARM: oxnas: Change OX810SE default driver config
        ...
      fbae5cbb
    • Linus Torvalds's avatar
      Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6f888fe3
      Linus Torvalds authored
      Pull ARM SoC cleanups from Olof Johansson:
       "The cleanup branch keeps going down in size as we've completed a lot
        of the major legacy platform removals and conversions.
      
        A handful of changes this time around, some of the themes or larger
        sets are:
      
         - A bunch of i.MX cleanups around platform detection, init call cleanups
         - Misc fixes of missing/implicit includes
         - Removal of ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB"
      
      * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (40 commits)
        ARM: mps2: fix typo
        ARM: s3c64xx: avoid warning about 'struct device_node'
        bus: mvebu-mbus: make mvebu_mbus_syscore_ops static
        bus: mvebu-mbus: fix __iomem on register pointers
        ARM: tegra: Remove board_init_funcs array
        ARM: iop: Fix indentation
        ARM: imx: remove cpu_is_mx*()
        ARM: imx: remove last call to cpu_is_mx5*
        ARM: imx: rework mx27_pm_init() call
        ARM: imx: deconstruct mx3_idle
        ARM: imx: deconstruct mxc_rnga initialization
        ARM: imx: remove cpu_is_mx1 check
        ARM: i.MX: Do not explicitly call l2x0_of_init()
        ARM: i.MX: system.c: Tweak prefetch settings for performance
        ARM: i.MX: system.c: Replace magic numbers
        ARM: i.MX: system.c: Remove redundant errata 752271 code
        ARM: i.MX: system.c: Convert goto to if statement
        ARM: Kirkwood: fix kirkwood_pm_init() declaration/type
        ARM: Kirkwood: make kirkwood_disable_mbus_error_propagation() static
        ARM: orion5x: make orion5x_legacy_handle_irq static
        ...
      6f888fe3
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.8-rc1-update' of... · 5dd0bf62
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.8-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This contains new tests and fixes:
      
         - a few fixes to existing tests
      
         - new media tests for testing driver unbind, and device removal paths
           while an user application is actively making system calls and
           ioctls"
      
      * tag 'linux-kselftest-4.8-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: media_tests add a new video device test
        selftests: media_tests - Add media_device_open to .gitignore
        selftests: add media controller regression test scripts and document
        selftests: add media_device_open test
        selftests: media_device_test change it to randomize loop count
        selftests/vm: Don't mlockall MCL_CURRENT in on-fault-limit test
        selftests/vm: write strlen length instead of sizeof to nr_hugepages
        selftests/lib: set printf.sh executable
      5dd0bf62
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.8-rc1-fixes' of... · 1571a03d
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.8-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest fixes from Shuah Khan:
      
       - Add a new timer set-tz test case
      
       - Fix a bug in exec test Makefile dependency list
      
      * tag 'linux-kselftest-4.8-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/exec: Makefile is a run-time dependency, add it to the install list
        kselftests: timers: Add set-tz test case
      1571a03d
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.8-2' of... · 2790aed0
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull more hwmon updates from Guenter Roeck:
      
       - Improved error handling in tmp102, lm75, and lm90 drivers
      
       - Bug fixes in sht3x, ftsteutates, iio_hwmon, and adt7411 drivers
      
      * tag 'hwmon-for-linus-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (adt7411) set sane values for CFG1 and CFG3
        hwmon: (iio_hwmon) fix memory leak in name attribute
        hwmon: (ftsteutates) Fix potential memory access error
        hwmon: (tmp102) Improve error handling
        hwmon: (lm75) Improve error handling
        hwmon: (lm90) Improve error handling
        hwmon: (lm90) Add missing assignment
        hwmon: (sht3x) set initial jiffies to last_update
      2790aed0
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · f38d2e53
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes a number of regressions in the marvell cesa driver caused
        by the chaining work, and a regression in lib/mpi that leads to a
        GFP_KERNEL allocation with preemption disabled"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: marvell - Don't copy IV vectors from the _process op for ciphers
        lib/mpi: Fix SG miter leak
        crypto: marvell - Update cache with input sg only when it is unmapped
        crypto: marvell - Don't chain at DMA level when backlog is disabled
        crypto: marvell - Fix memory leaks in TDMA chain for cipher requests
      f38d2e53
    • Linus Torvalds's avatar
      Merge branch 'x86-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aeb35d6b
      Linus Torvalds authored
      Pull x86 header cleanups from Ingo Molnar:
       "This tree is a cleanup of the x86 tree reducing spurious uses of
        module.h - which should improve build performance a bit"
      
      * 'x86-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, crypto: Restore MODULE_LICENSE() to glue_helper.c so it loads
        x86/apic: Remove duplicated include from probe_64.c
        x86/ce4100: Remove duplicated include from ce4100.c
        x86/headers: Include spinlock_types.h in x8664_ksyms_64.c for missing spinlock_t
        x86/platform: Delete extraneous MODULE_* tags fromm ts5500
        x86: Audit and remove any remaining unnecessary uses of module.h
        x86/kvm: Audit and remove any unnecessary uses of module.h
        x86/xen: Audit and remove any unnecessary uses of module.h
        x86/platform: Audit and remove any unnecessary uses of module.h
        x86/lib: Audit and remove any unnecessary uses of module.h
        x86/kernel: Audit and remove any unnecessary uses of module.h
        x86/mm: Audit and remove any unnecessary uses of module.h
        x86: Don't use module.h just for AUTHOR / LICENSE tags
      aeb35d6b
    • Sam Bobroff's avatar
      KVM: PPC: Introduce KVM_CAP_PPC_HTM · 23528bb2
      Sam Bobroff authored
      Introduce a new KVM capability, KVM_CAP_PPC_HTM, that can be queried to
      determine if a PowerPC KVM guest should use HTM (Hardware Transactional
      Memory).
      
      This will be used by QEMU to populate the pa-features bits in the
      guest's device tree.
      Signed-off-by: default avatarSam Bobroff <sam.bobroff@au1.ibm.com>
      Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      23528bb2
    • James Hogan's avatar
      MIPS: Select HAVE_KVM for MIPS64_R{2,6} · 40a2df49
      James Hogan authored
      We are now able to support KVM T&E with MIPS32 guests on some MIPS64r2
      and MIPS64r6 hosts, so select HAVE_KVM so it can be enabled.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      40a2df49
    • James Hogan's avatar
      MIPS: KVM: Reset CP0_PageMask during host TLB flush · a700434d
      James Hogan authored
      KVM sometimes flushes host TLB entries, reading each one to check if it
      corresponds to a guest KSeg0 address. In the absence of EntryHi.EHInv
      bits to invalidate the whole entry, the entries will be set to unique
      virtual addresses in KSeg0 (which is not TLB mapped), spaced 2*PAGE_SIZE
      apart.
      
      The TLB read however will clobber the CP0_PageMask register with
      whatever page size that TLB entry had, and that same page size will be
      written back into the TLB entry along with the unique address.
      
      This would cause breakage when transparent huge pages are enabled on
      64-bit host kernels, since huge page entries will overlap other nearby
      entries when separated by only 2*PAGE_SIZE, causing a machine check
      exception.
      
      Fix this by restoring the old CP0_PageMask value (which should be set to
      the normal page size) after reading the TLB entry if we're going to go
      ahead and invalidate it.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a700434d
    • James Hogan's avatar
      MIPS: KVM: Fix ptr->int cast via KVM_GUEST_KSEGX() · 8296963e
      James Hogan authored
      kvm_mips_trans_replace() passes a pointer to KVM_GUEST_KSEGX(). This
      breaks on 64-bit builds due to the cast of that 64-bit pointer to a
      different sized 32-bit int. Cast the pointer argument to an unsigned
      long to work around the warning.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      8296963e
    • James Hogan's avatar
      MIPS: KVM: Sign extend MFC0/RDHWR results · 172e02d1
      James Hogan authored
      When emulating MFC0 instructions to load 32-bit values from guest COP0
      registers and the RDHWR instruction to read the CC (Count) register,
      sign extend the result to comply with the MIPS64 architecture. The
      result must be in canonical 32-bit form or the guest may malfunction.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      172e02d1
    • James Hogan's avatar
      MIPS: KVM: Fix 64-bit big endian dynamic translation · 5808844f
      James Hogan authored
      The MFC0 and MTC0 instructions in the guest which cause traps can be
      replaced with 32-bit loads and stores to the commpage, however on big
      endian 64-bit builds the offset needs to have 4 added so as to
      load/store the least significant half of the long instead of the most
      significant half.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      5808844f
    • James Hogan's avatar
      MIPS: KVM: Fail if ebase doesn't fit in CP0_EBase · 2a06dab8
      James Hogan authored
      Fail if the address of the allocated exception base doesn't fit into the
      CP0_EBase register. This can happen on MIPS64 if CP0_EBase.WG isn't
      implemented but RAM is available outside of the range of KSeg0.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      2a06dab8
    • James Hogan's avatar
      MIPS: KVM: Use 64-bit CP0_EBase when appropriate · 0d17aea5
      James Hogan authored
      Update the KVM entry point to write CP0_EBase as a 64-bit register when
      it is 64-bits wide, and to set the WG (write gate) bit if it exists in
      order to write bits 63:30 (or 31:30 on MIPS32).
      
      Prior to MIPS64r6 it was UNDEFINED to perform a 64-bit read or write of
      a 32-bit COP0 register. Since this is dynamically generated code,
      generate the right type of access depending on whether the kernel is
      64-bit and cpu_has_ebase_wg.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0d17aea5
    • James Hogan's avatar
      MIPS: KVM: Set CP0_Status.KX on MIPS64 · 1d756942
      James Hogan authored
      Update the KVM entry code to set the CP0_Entry.KX bit on 64-bit kernels.
      This is important to allow the entry code, running in kernel mode, to
      access the full 64-bit address space right up to the point of entering
      the guest, and immediately after exiting the guest, so it can safely
      restore & save the guest context from 64-bit segments.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      1d756942
    • James Hogan's avatar
      MIPS: KVM: Make entry code MIPS64 friendly · e41637d8
      James Hogan authored
      The MIPS KVM entry code (originally kvm_locore.S, later locore.S, and
      now entry.c) has never quite been right when built for 64-bit, using
      32-bit instructions when 64-bit instructions were needed for handling
      64-bit registers and pointers. Fix several cases of this now.
      
      The changes roughly fall into the following categories.
      
      - COP0 scratch registers contain guest register values and the VCPU
        pointer, and are themselves full width. Similarly CP0_EPC and
        CP0_BadVAddr registers are full width (even though technically we
        don't support 64-bit guest address spaces with trap & emulate KVM).
        Use MFC0/MTC0 for accessing them.
      
      - Handling of stack pointers and the VCPU pointer must match the pointer
        size of the kernel ABI (always o32 or n64), so use ADDIU.
      
      - The CPU number in thread_info, and the guest_{user,kernel}_asid arrays
        in kvm_vcpu_arch are all 32 bit integers, so use lw (instead of LW) to
        load them.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      e41637d8
    • James Hogan's avatar
      MIPS: KVM: Use kmap instead of CKSEG0ADDR() · 28cc5bd5
      James Hogan authored
      There are several unportable uses of CKSEG0ADDR() in MIPS KVM, which
      implicitly assume that a host physical address will be in the low 512MB
      of the physical address space (accessible in KSeg0). These assumptions
      don't hold for highmem or on 64-bit kernels.
      
      When interpreting the guest physical address when reading or overwriting
      a trapping instruction, use kmap_atomic() to get a usable virtual
      address to access guest memory, which is portable to 64-bit and highmem
      kernels.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      28cc5bd5
    • James Hogan's avatar
      MIPS: KVM: Use virt_to_phys() to get commpage PFN · cfacaced
      James Hogan authored
      Calculate the PFN of the commpage using virt_to_phys() instead of
      CPHYSADDR(). This is more portable as kzalloc() may allocate from XKPhys
      instead of KSeg0 on 64-bit kernels, which CPHYSADDR() doesn't handle.
      This is sufficient for highmem kernels too since kzalloc() will allocate
      from lowmem in KSeg0.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      cfacaced
    • James Hogan's avatar
      MIPS: Fix definition of KSEGX() for 64-bit · 6002bdd3
      James Hogan authored
      The KSEGX() macro is defined to 32-bit sign extend the address argument
      and logically AND the result with 0xe0000000, with the final result
      usually compared against one of the CKSEG macros. However the literal
      0xe0000000 is unsigned as the high bit is set, and is therefore
      zero-extended on 64-bit kernels, resulting in the sign extension bits of
      the argument being masked to zero. This results in the odd situation
      where:
      
        KSEGX(CKSEG) != CKSEG
        (0xffffffff80000000 & 0x00000000e0000000) != 0xffffffff80000000)
      
      Fix this by 32-bit sign extending the 0xe0000000 literal using
      _ACAST32_.
      
      This will help some MIPS KVM code handling 32-bit guest addresses to
      work on 64-bit host kernels, but will also affect KSEGX in
      dec_kn01_be_backend() on a 64-bit DECstation kernel, and the SiByte DMA
      page ops KSEGX check in clear_page() and copy_page() on 64-bit SB1
      kernels, neither of which appear to be designed with 64-bit segments in
      mind anyway.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Cc: Maciej W. Rozycki <macro@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      6002bdd3
    • Jim Mattson's avatar
      KVM: VMX: Add VMCS to CPU's loaded VMCSs before VMPTRLD · b80c76ec
      Jim Mattson authored
      Kexec needs to know the addresses of all VMCSs that are active on
      each CPU, so that it can flush them from the VMCS caches. It is
      safe to record superfluous addresses that are not associated with
      an active VMCS, but it is not safe to omit an address associated
      with an active VMCS.
      
      After a call to vmcs_load, the VMCS that was loaded is active on
      the CPU. The VMCS should be added to the CPU's list of active
      VMCSs before it is loaded.
      Signed-off-by: default avatarJim Mattson <jmattson@google.com>
      Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
      b80c76ec
    • David Matlack's avatar
      kvm: x86: nVMX: maintain internal copy of current VMCS · 4f2777bc
      David Matlack authored
      KVM maintains L1's current VMCS in guest memory, at the guest physical
      page identified by the argument to VMPTRLD. This makes hairy
      time-of-check to time-of-use bugs possible,as VCPUs can be writing
      the the VMCS page in memory while KVM is emulating VMLAUNCH and
      VMRESUME.
      
      The spec documents that writing to the VMCS page while it is loaded is
      "undefined". Therefore it is reasonable to load the entire VMCS into
      an internal cache during VMPTRLD and ignore writes to the VMCS page
      -- the guest should be using VMREAD and VMWRITE to access the current
      VMCS.
      
      To adhere to the spec, KVM should flush the current VMCS during VMPTRLD,
      and the target VMCS during VMCLEAR (as given by the operand to VMCLEAR).
      Since this implementation of VMCS caching only maintains the the current
      VMCS, VMCLEAR will only do a flush if the operand to VMCLEAR is the
      current VMCS pointer.
      
      KVM will also flush during VMXOFF, which is not mandated by the spec,
      but also not in conflict with the spec.
      Signed-off-by: default avatarDavid Matlack <dmatlack@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      4f2777bc
    • Radim Krčmář's avatar
      Merge branch 'kvm-ppc-next' of... · 601045bf
      Radim Krčmář authored
      Merge branch 'kvm-ppc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into next
      
      Fix for CVE-2016-5412, a denial-of-service vulnerability in HV KVM on
      POWER8 machines
      601045bf
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 7a66ecfd
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Add support for an enable regulator to lp855x_bl"
      
      * tag 'backlight-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: lp855x: Add enable regulator
      7a66ecfd
    • Linus Torvalds's avatar
      Merge tag 'mfd-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 06e23d51
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Core Framework:
         - New API to call bespoke pre/post IRQ handlers; Regmap
      
        New Device Support:
         - Add support for RN5T567 to rn5t618
         - Add support for COMe-cSL6 and COMe-mAL10 to kempld-core
      
        New Functionality:
         - Add support for USB Power Supply to axp20x
         - Add support for Power Key to hi655x-pmic
      
        Fix-ups:
         - Update MAINTAINERS; Dialog, Altera
         - Remove module support; max77843, max77620, max8998, max8997, max8925-i2c
         - Add module support; max14577
         - Constifying; max77620
         - Allow bespoke IRQ masking/unmasking; max77620
         - Remove superfluous code; arizona, qcom_rpm, smsc-ece1099
         - Power Management fixups; arizona-core
         - Error-path improvement; twl-core, dm355evm_msp, smsc-ece1099, hi655x
         - Clocking fixups; twl6040
         - Trivial (spelling, headers, coding-style, whitespace, (re)naming);
             si476x-i2c, omap-usb-tll, ti_am335x_tscadc, tps6507, hi655x-pmic
      
        Bug Fixes:
         - Fix offset error for MSM8660; qcom_rpm
         - Fix possible spurious IRQs; arizona, hi655x-pmic"
      
      * tag 'mfd-for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (42 commits)
        mfd: qcom_rpm: Parametrize also ack selector size
        mfd: twl6040: Handle mclk used for HPPLL and optional internal clock source
        mfd: Add support for COMe-cSL6 and COMe-mAL10 to Kontron PLD driver
        mfd: hi655x: Fix return value check in hi655x_pmic_probe()
        mfd: smsc-ece1099: Return directly after a function failure in smsc_i2c_probe()
        mfd: smsc-ece1099: Delete an unnecessary variable initialisation in smsc_i2c_probe()
        mfd: dm355evm_msp: Return directly after a failed platform_device_alloc() in add_child()
        mfd: twl-core: Refactoring for add_numbered_child()
        mfd: twl-core: Return directly after a failed platform_device_alloc() in add_numbered_child()
        mfd: arizona: Add missing disable of PM runtime on probe error path
        mfd: stmpe: Move platform data into MFD driver
        mfd: max14577: Allow driver to be built as a module
        mfd: max14577: Use module_init() instead of subsys_initcall()
        mfd: arizona: Remove some duplicate defines
        mfd: qcom_rpm: Remove unused define
        mfd: hi655x-pmic: Add powerkey device to hi655x PMIC driver
        mfd: hi655x-pmic: Rename some interrupt macro names
        mfd: hi655x-pmic: Fixup issue with un-acked interrupts
        mfd: arizona: Check if AOD interrupts are pending before dispatching
        mfd: qcom_rpm: Fix offset error for msm8660
        ...
      06e23d51
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · dd967117
      Linus Torvalds authored
      Pull IOMMU updates from Joerg Roedel:
      
       - big-endian support and preparation for defered probing for the Exynos
         IOMMU driver
      
       - simplifications in iommu-group id handling
      
       - support for Mediatek generation one IOMMU hardware
      
       - conversion of the AMD IOMMU driver to use the generic IOVA allocator.
         This driver now also benefits from the recent scalability
         improvements in the IOVA code.
      
       - preparations to use generic DMA mapping code in the Rockchip IOMMU
         driver
      
       - device tree adaption and conversion to use generic page-table code
         for the MSM IOMMU driver
      
       - an iova_to_phys optimization in the ARM-SMMU driver to greatly
         improve page-table teardown performance with VFIO
      
       - various other small fixes and conversions
      
      * tag 'iommu-updates-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (59 commits)
        iommu/amd: Initialize dma-ops domains with 3-level page-table
        iommu/amd: Update Alias-DTE in update_device_table()
        iommu/vt-d: Return error code in domain_context_mapping_one()
        iommu/amd: Use container_of to get dma_ops_domain
        iommu/amd: Flush iova queue before releasing dma_ops_domain
        iommu/amd: Handle IOMMU_DOMAIN_DMA in ops->domain_free call-back
        iommu/amd: Use dev_data->domain in get_domain()
        iommu/amd: Optimize map_sg and unmap_sg
        iommu/amd: Introduce dir2prot() helper
        iommu/amd: Implement timeout to flush unmap queues
        iommu/amd: Implement flush queue
        iommu/amd: Allow NULL pointer parameter for domain_flush_complete()
        iommu/amd: Set up data structures for flush queue
        iommu/amd: Remove align-parameter from __map_single()
        iommu/amd: Remove other remains of old address allocator
        iommu/amd: Make use of the generic IOVA allocator
        iommu/amd: Remove special mapping code for dma_ops path
        iommu/amd: Pass gfp-flags to iommu_map_page()
        iommu/amd: Implement apply_dm_region call-back
        iommu/amd: Create a list of reserved iova addresses
        ...
      dd967117