03 Aug, 2016

4 commits

  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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

    Linus Torvalds
     

02 Aug, 2016

29 commits

  • 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
    ...

    Linus Torvalds
     
  • Switch to MULTIPLATFORM"

    Missed conflict between commit c86f51737f8d ("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: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • 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

    Dave Airlie
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • …/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

    Linus Torvalds
     
  • …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

    Linus Torvalds
     
  • …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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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

    Linus Torvalds
     
  • 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: Sam Bobroff
    Reviewed-by: David Gibson
    Signed-off-by: Paolo Bonzini

    Sam Bobroff
     
  • 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: James Hogan
    Cc: Ralf Baechle
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Cc: Paolo Bonzini
    Cc: "Radim Krčmář"
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     
  • 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: James Hogan
    Acked-by: Ralf Baechle
    Cc: Maciej W. Rozycki
    Cc: linux-mips@linux-mips.org
    Signed-off-by: Paolo Bonzini

    James Hogan
     

01 Aug, 2016

7 commits

  • 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: Jim Mattson
    Signed-off-by: Radim Krčmář

    Jim Mattson
     
  • 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: David Matlack
    Signed-off-by: Paolo Bonzini

    David Matlack
     
  • …lus/powerpc into next

    Fix for CVE-2016-5412, a denial-of-service vulnerability in HV KVM on
    POWER8 machines

    Radim Krčmář
     
  • 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

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • 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
    ...

    Linus Torvalds
     
  • Pull mailbox updates from Jussi Brar:
    "Broadcom:
    - New PDC controller driver and bindings

    Misc:
    - PL320 - Convert from 'raw' IO to 'relaxed' version
    - Test - fix dangling pointer"

    * 'mailbox-for-next' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
    mailbox: Fix format and type mismatches in Broadcom PDC driver
    mailbox: Add Broadcom PDC mailbox driver
    dt-bindings: add bindings documentation for PDC driver.
    mailbox: pl320: remove __raw IO
    mailbox: mailbox-test: set tdev->signal to NULL after freeing

    Linus Torvalds