1. 16 Sep, 2019 19 commits
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · d47ebd68
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "As usual, a bunch of commits, mostly adding drivers and other options
        to defconfigs after the code was merged through another tree"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (32 commits)
        arm64: defconfig: Enable Qualcomm QUSB2 PHY
        arm64: defconfig: Enable the EFI Framebuffer
        arm64: defconfig: Enable Qualcomm GENI based I2C controller
        ARM: multi_v7_defconfig: Make MAX77802 regulator driver built-in
        arm64: defconfig: Enable CPU clock drivers for Qualcomm msm8916
        arm64: defconfig: Add DRM_MSM to defconfigs with ARCH_QCOM
        ARM: multi_v7_defconfig: Add DRM_MSM to defconfigs with ARCH_QCOM
        ARM: qcom_defconfig: Add DRM_MSM to defconfigs with ARCH_QCOM
        ARM: configs: aspeed_g5: Enable AST2600
        ARM: configs: multi_v7: Add ASPEED G6
        arm64: defconfig: Enable SM8150 GCC and pinctrl driver
        arm64: defconfig: Enable CONFIG_ACPI_APEI_PCIEAER
        arm64: defconfig: Enable the DesignWare watchdog
        ARM: multi_v7_defconfig: Enable SPI_STM32_QSPI support
        ARM: imx_v6_v7_defconfig: Enable the PSCI CPUidle driver
        arm64: defconfig: Enable the PSCI CPUidle driver
        arm64: defconfig: Enable Sun4i SPDIF module
        ARM: exynos_defconfig: Enable AHCI-platform SATA driver
        arm64: defconfig: CONFIG_DRM_ETNAVIV=m
        ARM: imx_v6_v7_defconfig: Select the OV5645 camera driver
        ...
      d47ebd68
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 399eb9b6
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "This contains driver changes that are tightly connected to SoC
        specific code. Aside from smaller cleanups and bug fixes, here is a
        list of the notable changes.
      
        New device drivers:
      
         - The Turris Mox router has a new "moxtet" bus driver for its
           on-board pluggable extension bus. The same platform also gains a
           firmware driver.
      
         - The Samsung Exynos family gains a new Chipid driver exporting using
           the soc device sysfs interface
      
         - A similar socinfo driver for Qualcomm Snapdragon chips.
      
         - A firmware driver for the NXP i.MX DSP IPC protocol using shared
           memory and a mailbox
      
        Other changes:
      
         - The i.MX reset controller driver now supports the NXP i.MX8MM chip
      
         - Amlogic SoC specific drivers gain support for the S905X3 and A311D
           chips
      
         - A rework of the TI Davinci framebuffer driver to allow important
           cleanups in the platform code
      
         - A couple of device drivers for removed ARM SoC platforms are
           removed. Most of the removals were picked up by other maintainers,
           this contains whatever was left"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (123 commits)
        bus: uniphier-system-bus: use devm_platform_ioremap_resource()
        soc: ti: ti_sci_pm_domains: Add support for exclusive and shared access
        dt-bindings: ti_sci_pm_domains: Add support for exclusive and shared access
        firmware: ti_sci: Allow for device shared and exclusive requests
        bus: imx-weim: remove incorrect __init annotations
        fbdev: remove w90x900/nuc900 platform drivers
        spi: remove w90x900 driver
        net: remove w90p910-ether driver
        net: remove ks8695 driver
        firmware: turris-mox-rwtm: Add sysfs documentation
        firmware: Add Turris Mox rWTM firmware driver
        dt-bindings: firmware: Document cznic,turris-mox-rwtm binding
        bus: moxtet: fix unsigned comparison to less than zero
        bus: moxtet: remove set but not used variable 'dummy'
        ARM: scoop: Use the right include
        dt-bindings: power: add Amlogic Everything-Else power domains bindings
        soc: amlogic: Add support for Everything-Else power domains controller
        fbdev: da8xx: use resource management for dma
        fbdev: da8xx-fb: drop a redundant if
        fbdev: da8xx-fb: use devm_platform_ioremap_resource()
        ...
      399eb9b6
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 2b97c395
      Linus Torvalds authored
      Pull ARM SoC platform updates from Arnd Bergmann:
       "The main change this time around is a cleanup of some of the oldest
        platforms based on the XScale and ARM9 CPU cores, which are between 10
        and 20 years old.
      
        The Kendin/Micrel/Microchip KS8695, Winbond/Nuvoton W90x900 and Intel
        IOP33x/IOP13xx platforms are removed after we determined that nobody
        is using them any more.
      
        The TI Davinci and NXP LPC32xx platforms on the other hand are still
        in active use and are converted to the ARCH_MULTIPLATFORM build,
        meaning that we can compile a kernel that works on these along with
        most other ARMv5 platforms. Changes toward that goal are also merged
        for IOP32x, but additional work is needed to complete this. Patches
        for the remaining ARMv5 platforms have started but need more work and
        some testing.
      
        Support for the new ASpeed AST2600 gets added, this is based on the
        Cortex-A7 ARMv7 core, and is a newer version of the existing ARMv5 and
        ARMv6 chips in the same family.
      
        Other changes include a cleanup of the ST-Ericsson ux500 platform and
        the move of the TI Davinci platform to a new clocksource driver"
      
      [ The changes had marked INTEL_IOP_ADMA and USB_LPC32XX as being
        buildable on other platforms through COMPILE_TEST, but that causes new
        warnings that I most definitely do not want to see during the merge
        window as that could hide other issues.
      
        So the COMPILE_TEST option got disabled for them again   - Linus ]
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (61 commits)
        ARM: multi_v5_defconfig: make DaVinci part of the ARM v5 multiplatform build
        ARM: davinci: support multiplatform build for ARM v5
        arm64: exynos: Enable exynos-chipid driver
        ARM: OMAP2+: Delete an unnecessary kfree() call in omap_hsmmc_pdata_init()
        ARM: OMAP2+: move platform-specific asm-offset.h to arch/arm/mach-omap2
        ARM: davinci: dm646x: Fix a typo in the comment
        ARM: davinci: dm646x: switch to using the clocksource driver
        ARM: davinci: dm644x: switch to using the clocksource driver
        ARM: aspeed: Enable SMP boot
        ARM: aspeed: Add ASPEED AST2600 architecture
        ARM: aspeed: Select timer in each SoC
        dt-bindings: arm: cpus: Add ASPEED SMP
        ARM: imx: stop adjusting ar8031 phy tx delay
        mailmap: map old company name to new one @microchip.com
        MAINTAINERS: at91: remove the TC entry
        MAINTAINERS: at91: Collect all pinctrl/gpio drivers in same entry
        ARM: at91: move platform-specific asm-offset.h to arch/arm/mach-at91
        MAINTAINERS: Extend patterns for Samsung SoC, Security Subsystem and clock drivers
        ARM: s3c64xx: squash samsung_usb_phy.h into setup-usb-phy.c
        ARM: debug-ll: Add support for r7s9210
        ...
      2b97c395
    • Linus Torvalds's avatar
      Merge branch 'parisc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · d0a16fe9
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
      
       - Make the powerpc implementation to read elf files available as a
         public kexec interface so it can be re-used on other architectures
         (Sven)
      
       - Implement kexec on parisc (Sven)
      
       - Add kprobes on ftrace on parisc (Sven)
      
       - Fix kernel crash with HSC-PCI cards based on card-mode Dino
      
       - Add assembly implementations for memset, strlen, strcpy, strncpy and
         strcat
      
       - Some cleanups, documentation updates, warning fixes, ...
      
      * 'parisc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (25 commits)
        parisc: Have git ignore generated real2.S and firmware.c
        parisc: Disable HP HSC-PCI Cards to prevent kernel crash
        parisc: add support for kexec_file_load() syscall
        parisc: wire up kexec_file_load syscall
        parisc: add kexec syscall support
        parisc: add __pdc_cpu_rendezvous()
        kprobes/parisc: remove arch_kprobe_on_func_entry()
        kexec_elf: support 32 bit ELF files
        kexec_elf: remove unused variable in kexec_elf_load()
        kexec_elf: remove Elf_Rel macro
        kexec_elf: remove PURGATORY_STACK_SIZE
        kexec_elf: remove parsing of section headers
        kexec_elf: change order of elf_*_to_cpu() functions
        kexec: add KEXEC_ELF
        parisc: Save some bytes in dino driver
        parisc: Drop comments which are already in pci.h
        parisc: Convert eisa_enumerator to use pr_cont()
        parisc: Avoid warning when loading hppb driver
        parisc: speed up flush_tlb_all_local with qemu
        parisc: Add ALTERNATIVE_CODE() and ALT_COND_RUN_ON_QEMU
        ...
      d0a16fe9
    • Linus Torvalds's avatar
      Merge tag 'please-pull-ia64_for_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 76f0f227
      Linus Torvalds authored
      Pull ia64 updates from Tony Luck:
       "The big change here is removal of support for SGI Altix"
      
      * tag 'please-pull-ia64_for_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: (33 commits)
        genirq: remove the is_affinity_mask_valid hook
        ia64: remove CONFIG_SWIOTLB ifdefs
        ia64: remove support for machvecs
        ia64: move the screen_info setup to common code
        ia64: move the ROOT_DEV setup to common code
        ia64: rework iommu probing
        ia64: remove the unused sn_coherency_id symbol
        ia64: remove the SGI UV simulator support
        ia64: remove the zx1 swiotlb machvec
        ia64: remove CONFIG_ACPI ifdefs
        ia64: remove CONFIG_PCI ifdefs
        ia64: remove the hpsim platform
        ia64: remove now unused machvec indirections
        ia64: remove support for the SGI SN2 platform
        drivers: remove the SGI SN2 IOC4 base support
        drivers: remove the SGI SN2 IOC3 base support
        qla2xxx: remove SGI SN2 support
        qla1280: remove SGI SN2 support
        misc/sgi-xp: remove SGI SN2 support
        char/mspec: remove SGI SN2 support
        ...
      76f0f227
    • Linus Torvalds's avatar
      Merge tag 'riscv/for-v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 58d4fafd
      Linus Torvalds authored
      Pull RISC-V updates from Paul Walmsley:
       "Add the following new features:
      
         - Generic CPU topology description support for DT-based platforms,
           including ARM64, ARM and RISC-V.
      
         - Sparsemem support
      
         - Perf callchain support
      
         - SiFive PLIC irqchip modifications, in preparation for M-mode Linux
      
        and clean up the code base:
      
         - Clean up chip-specific register (CSR) manipulation code, IPIs, TLB
           flushing, and the RISC-V CPU-local timer code
      
         - Kbuild cleanup from one of the Kbuild maintainers"
      
      [ The CPU topology parts came in through the arm64 tree with a shared
        branch   - Linus ]
      
      * tag 'riscv/for-v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        irqchip/sifive-plic: set max threshold for ignored handlers
        riscv: move the TLB flush logic out of line
        riscv: don't use the rdtime(h) pseudo-instructions
        riscv: cleanup riscv_cpuid_to_hartid_mask
        riscv: optimize send_ipi_single
        riscv: cleanup send_ipi_mask
        riscv: refactor the IPI code
        riscv: Add support for libdw
        riscv: Add support for perf registers sampling
        riscv: Add perf callchain support
        riscv: add arch/riscv/Kbuild
        RISC-V: Implement sparsemem
        riscv: Using CSR numbers to access CSRs
      58d4fafd
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · dbcda58a
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - ioremap() cleanups
      
       - defconfig updates
      
       - small fixes and cleanups
      
      * tag 'm68k-for-v5.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Remove ioremap_fullcache()
        m68k: Simplify ioremap_nocache()
        m68k: defconfig: Update defconfigs for v5.3-rc2
        m68k: atari: Rename shifter to shifter_st to avoid conflict
        m68k: Prevent some compiler warnings in Coldfire builds
        m68k: mac: Revisit floppy disc controller base addresses
      dbcda58a
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · e77fafe9
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "Although there isn't tonnes of code in terms of line count, there are
        a fair few headline features which I've noted both in the tag and also
        in the merge commits when I pulled everything together.
      
        The part I'm most pleased with is that we had 35 contributors this
        time around, which feels like a big jump from the usual small group of
        core arm64 arch developers. Hopefully they all enjoyed it so much that
        they'll continue to contribute, but we'll see.
      
        It's probably worth highlighting that we've pulled in a branch from
        the risc-v folks which moves our CPU topology code out to where it can
        be shared with others.
      
        Summary:
      
         - 52-bit virtual addressing in the kernel
      
         - New ABI to allow tagged user pointers to be dereferenced by
           syscalls
      
         - Early RNG seeding by the bootloader
      
         - Improve robustness of SMP boot
      
         - Fix TLB invalidation in light of recent architectural
           clarifications
      
         - Support for i.MX8 DDR PMU
      
         - Remove direct LSE instruction patching in favour of static keys
      
         - Function error injection using kprobes
      
         - Support for the PPTT "thread" flag introduced by ACPI 6.3
      
         - Move PSCI idle code into proper cpuidle driver
      
         - Relaxation of implicit I/O memory barriers
      
         - Build with RELR relocations when toolchain supports them
      
         - Numerous cleanups and non-critical fixes"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (114 commits)
        arm64: remove __iounmap
        arm64: atomics: Use K constraint when toolchain appears to support it
        arm64: atomics: Undefine internal macros after use
        arm64: lse: Make ARM64_LSE_ATOMICS depend on JUMP_LABEL
        arm64: asm: Kill 'asm/atomic_arch.h'
        arm64: lse: Remove unused 'alt_lse' assembly macro
        arm64: atomics: Remove atomic_ll_sc compilation unit
        arm64: avoid using hard-coded registers for LSE atomics
        arm64: atomics: avoid out-of-line ll/sc atomics
        arm64: Use correct ll/sc atomic constraints
        jump_label: Don't warn on __exit jump entries
        docs/perf: Add documentation for the i.MX8 DDR PMU
        perf/imx_ddr: Add support for AXI ID filtering
        arm64: kpti: ensure patched kernel text is fetched from PoU
        arm64: fix fixmap copy for 16K pages and 48-bit VA
        perf/smmuv3: Validate groups for global filtering
        perf/smmuv3: Validate group size
        arm64: Relax Documentation/arm64/tagged-pointers.rst
        arm64: kvm: Replace hardcoded '1' with SYS_PAR_EL1_F
        arm64: mm: Ignore spurious translation faults taken from the kernel
        ...
      e77fafe9
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 52a55252
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - batched unmap support for the IOMMU-API
      
       - support for unlocked command queueing in the ARM-SMMU driver
      
       - rework the ATS support in the ARM-SMMU driver
      
       - more refactoring in the ARM-SMMU driver to support hardware
         implemention specific quirks and errata
      
       - bounce buffering DMA-API implementatation in the Intel VT-d driver
         for untrusted devices (like Thunderbolt devices)
      
       - fixes for runtime PM support in the OMAP iommu driver
      
       - MT8183 IOMMU support in the Mediatek IOMMU driver
      
       - rework of the way the IOMMU core sets the default domain type for
         groups. Changing the default domain type on x86 does not require two
         kernel parameters anymore.
      
       - more smaller fixes and cleanups
      
      * tag 'iommu-updates-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (113 commits)
        iommu/vt-d: Declare Broadwell igfx dmar support snafu
        iommu/vt-d: Add Scalable Mode fault information
        iommu/vt-d: Use bounce buffer for untrusted devices
        iommu/vt-d: Add trace events for device dma map/unmap
        iommu/vt-d: Don't switch off swiotlb if bounce page is used
        iommu/vt-d: Check whether device requires bounce buffer
        swiotlb: Split size parameter to map/unmap APIs
        iommu/omap: Mark pm functions __maybe_unused
        iommu/ipmmu-vmsa: Disable cache snoop transactions on R-Car Gen3
        iommu/ipmmu-vmsa: Move IMTTBCR_SL0_TWOBIT_* to restore sort order
        iommu: Don't use sme_active() in generic code
        iommu/arm-smmu-v3: Fix build error without CONFIG_PCI_ATS
        iommu/qcom: Use struct_size() helper
        iommu: Remove wrong default domain comments
        iommu/dma: Fix for dereferencing before null checking
        iommu/mediatek: Clean up struct mtk_smi_iommu
        memory: mtk-smi: Get rid of need_larbid
        iommu/mediatek: Fix VLD_PA_RNG register backup when suspend
        memory: mtk-smi: Add bus_sel for mt8183
        memory: mtk-smi: Invoke pm runtime_callback to enable clocks
        ...
      52a55252
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · bbfe0d6b
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of changes in the GPIO subsystem for the v5.4 kernel
        cycle.
      
        Core changes:
      
         - Support hierarchical GPIO irqchips.
      
           We now have three consumers that can use this: Intel IXP4xx,
           ThunderX and Qualcomm SPMI GPIO (in the pinctrl subsystem).
      
           The support code has been long in the making and hashed out so it
           should be easily adaptable for all hierarchical irqchip parents.
           The code only gets compiled in if hierarchical irqchip is used at
           the topmost irq controller at least, as the hierarchical irqchip
           requires strict hierarchy all the way up in the system.
      
         - Determine the need for a "valid_mask" for GPIO lines on the
           gpio_chip and conversely for the "valid_mask" for the GPIO
           interrupt chip interrupt lines by looking for a .init_valid_mask()
           callback in the main chip or GPIO interrupt chip respectively.
           Allocate it with bitmap_alloc().
      
         - Isolate the device tree/open firmware GPIO description code out in
           its own file properly.
      
         - Isolate the ACPI GPIO description code out in its own file
           properly.
      
         - Drop a whole lot of #ifdef:s in the main includes: it does not hurt
           to keep the include items around, and we get quicker and clearer
           compile failures if the appropriate kernel symbols are not selected
           for drivers.
      
        New/deleted drivers:
      
         - New driver for Aspeed SGPIO.
      
         - The KS8695 driver is deleted as the platform gets deleted from
           arch/arm in this kernel cycle.
      
         - The Cirrus Logic Madera driver now supports CS47L92 and CS47L15.
      
         - The Freescale MPC8xxx now supports LS1028A and LS1088A.
      
        Driver improvements:
      
         - We pass the GPIO irqchip intialization by directly filling in the
           struct instead of using set-up functions (the new way) for Intel
           MID, Lynxpoint, Merrifield, XLP, HLWD, Aspeed, ZX, VF610, TQMX86,
           MT7621, Zynq and EP93xx.
      
        Out-of-band changes:
      
         - Fix a GPIO header inclusion in Unicore - no response from
           maintainer.
      
         - Drop FMC subsystem from MAINTAINERS - was deleted in the GPIO tree
           last cycle so let's mop up the shards"
      
      * tag 'gpio-v5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (82 commits)
        gpiolib: of: add a fallback for wlf,reset GPIO name
        gpio: htc-egpio: Remove unused exported htc_egpio_get_wakeup_irq()
        gpio: remove explicit comparison with 0
        gpio: creg-snps: use devm_platform_ioremap_resource() to simplify code
        gpio: devres: Switch to EXPORT_SYMBOL_GPL()
        gpio: of: Switch to EXPORT_SYMBOL_GPL()
        gpio: of: Make of_gpio_simple_xlate() private
        gpio: of: Make of_get_named_gpiod_flags() private
        gpio: aspeed: Add in ast2600 details to Aspeed driver
        gpio: aspeed: Use ngpio property from device tree if available
        gpio: aspeed: Setup irqchip dynamically
        gpio/aspeed: Fix incorrect number of banks
        gpio: aspeed: Update documentation with ast2600 controllers
        gpio: Initialize the irqchip valid_mask with a callback
        gpiolib: acpi: make acpi_can_fallback_to_crs() static
        gpio: Fix further merge errors
        gpio: Fix up merge collision in include file
        gpio: of: Normalize return code variable name
        gpio: gpiolib: Normalize return code variable name
        gpio: ep93xx: Pass irqchip when adding gpiochip
        ...
      bbfe0d6b
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · 31dda85e
      Linus Torvalds authored
      Pull i3c updates from Boris Brezillon:
       "Core changes:
      
         - Export i3c_device_match_id() so driver can get per-device data
      
         - Add addr and lvr fields to i2c_dev_desc so we can attach I2C
           devices that are not described in the DT
      
         - Add a missing of_node_put()
      
         - Fix a memory leak
      
         - Use dev_to_i3cmaster() instead of open-coding it
      
        Driver changes:
      
         - Use for_each_set_bit() in the Cadence driver"
      
      * tag 'i3c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c: master: Use dev_to_i3cmaster()
        i3c: master: fix a memory leak bug
        i3c: add addr and lvr to i2c_dev_desc structure
        i3c: master: cdns: Use for_each_set_bit()
        i3c: master: Add of_node_put() before return
        i3c: move i3c_device_match_id to device.c and export it
      31dda85e
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · aa62325d
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "The big theme for this release has been performance, we've had a
        series of unrelated overhauls of a few drivers all with a big
        peformance component.
      
        Otherwise it's been relatively quiet, highlights include:
      
         - A big overhaul of the spi-fsl-dspi driver improving the code
           quality, performance and stability from Vladimir Oltean.
      
         - A big performance enhancement for the bc2835 (Raspberry Pi) driver
           for unidirectional transfers from Lukas Wunner.
      
         - Improved performance on small transfers for the uniphier driver
           from Keiji Hayashibara.
      
         - Lots of coccinelle generated cleanups from Yue Haibing.
      
         - New device support for Freescale ls2080a and Nuvoton NPCM FIU"
      
      * tag 'spi-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (102 commits)
        spi: mediatek: support large PA
        spi: mediatek: add spi support for mt6765 IC
        dt-bindings: spi: update bindings for MT6765 SoC
        spi: bcm2835: Speed up RX-only DMA transfers by zero-filling TX FIFO
        spi: bcm2835: Speed up TX-only DMA transfers by clearing RX FIFO
        dmaengine: bcm2835: Avoid accessing memory when copying zeroes
        spi: bcm2835: Cache CS register value for ->prepare_message()
        dmaengine: bcm2835: Document struct bcm2835_dmadev
        spi: Guarantee cacheline alignment of driver-private data
        dmaengine: bcm2835: Allow reusable descriptors
        dmaengine: bcm2835: Allow cyclic transactions without interrupt
        spi: bcm2835: Drop dma_pending flag
        spi: bcm2835: Work around DONE bit erratum
        spi-gpio: Use PTR_ERR_OR_ZERO() in spi_gpio_request()
        spi: Use an abbreviated pointer to ctlr->cur_msg in __spi_pump_messages
        spi: npcm-fiu: remove set but not used variable 'retlen'
        spi: fsl-spi: use devm_platform_ioremap_resource() to simplify code
        spi: zynq-qspi: use devm_platform_ioremap_resource() to simplify code
        spi: zynqmp: use devm_platform_ioremap_resource() to simplify code
        spi: xlp: use devm_platform_ioremap_resource() to simplify code
        ...
      aa62325d
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · c4d11ccb
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A small update for the regualtor API for this cycle, some small fixes
        and a bunch of new devices but none of them very big.
      
        The most stand out thing is the regulator-fixed-clock driver which is
        for regulators where the enable control is done by using a clock
        instead of a GPIO or register write, a novel hardware design that had
        not previously come up.
      
        Summary:
      
         - Added a keyword pattern for regulator_get_optional() since usage of
           that API generally needs extra review.
      
         - Operating mode and suspend state support for act8865.
      
         - New device support for Active Semiconductor ACT8600 chargers,
           Mediatek MT6358, Qualcomm SM8150, regulator-fixed-clock, and
           Synoptics SY20276, SY20278 and SY8824E"
      
      * tag 'regulator-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (52 commits)
        regulator: core: Fix error return for /sys access
        regulator: da9211: fix obtaining "enable" GPIO
        regulator: max77686: fix obtaining "maxim,ena" GPIO
        regulator: uniphier: Add Pro5 USB3 VBUS support
        dt-bindings: regulator: add regulator-fixed-clock binding
        regulator: fixed: add possibility to enable by clock
        regulator: s2mps11: Consistently use local variable
        regulator: lp87565: Simplify lp87565_buck_set_ramp_delay
        regulator: slg51000: use devm_gpiod_get_optional() in probe
        regulator: lp8788-ldo: make array en_mask static const, makes object smaller
        regulator: tps65132: Stop parsing DT when gpio is not found
        regulator: Defer init completion for a while after late_initcall
        regulator: add missing 'static inline' to a helper's stub
        regulator: provide regulator_bulk_set_supply_names()
        MAINTAINERS: Add keyword pattern on regulator_get_optional()
        regulator: sy8824x: add prefixes to BUCK_EN and MODE macros
        regulator: sy8824x: use c++style for the comment block near SPDX
        regulator: mt6358: Add BROKEN dependency while waiting for MFD to merge
        regulator: mt6358: Add support for MT6358 regulator
        regulator: Add document for MT6358 regulator
        ...
      c4d11ccb
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 0372fd1a
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "Only two changes for this release, one fix for error handling with
        runtime PM and a change from Greg removing error handling from debugfs
        API calls now that they implement user visible error reporting"
      
      * tag 'regmap-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap-irq: Correct error paths in regmap_irq_thread for pm_runtime
        regmap: no need to check return value of debugfs_create functions
      0372fd1a
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 6729fb66
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
         - Inspur Power System power supply driver
         - Synaptics AS370 PVT sensor driver
      
        Chip support:
         - support SHTC3 in shtc1 driver
         - support NCT6116 in nct6775 driver
         - support AMD family 17h, model 70h CPUs in k10temp driver
         - support PCT2075 in lm75 driver
      
        Removed drivers:
         - ads1015 driver (now supported in iio)
      
        Other changes:
         - Convert drivers to use devm_i2c_new_dummy_device
         - Substantial structural improvements in lm75 driver adding support
           for writing sample interval for supported chips
         - Add support for PSU version 2 to ibm-cffps driver
         - Add support for power attribute to iio_hwmon bridge
         - Add support for additional fan, voltage and temperature attributes
           to nct7904 driver
         - Convert adt7475 driver to use hwmon_device_register_with_groups()
         - Convert k8temp driver to use hwmon_device_register_with_info()
         - Various other improvements and minor fixes"
      
      * tag 'hwmon-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (48 commits)
        hwmon: submitting-patches: Add note on comment style
        hwmon: submitting-patches: Point to with_info API
        hwmon: (nct7904) Fix incorrect SMI status register setting of LTD temperature and fan.
        hwmon: (shtc1) add support for the SHTC3 sensor
        hwmon: (shtc1) fix shtc1 and shtw1 id mask
        hwmon: (lm75) Aproximate sample times to data-sheet values
        hwmon: (w83793d) convert to use devm_i2c_new_dummy_device
        hwmon: (w83792d) convert to use devm_i2c_new_dummy_device
        hwmon: (w83791d) convert to use devm_i2c_new_dummy_device
        hwmon: (as370-hwmon) fix devm_platform_ioremap_resource.cocci warnings
        hwmon: (lm75) Add support for writing sampling period on PCT2075
        hwmon: (lm75) Add support for writing conversion time for TMP112
        hwmon: (lm75) Move updating the sample interval to its own function
        hwmon: (lm75) Support configuring the sample time for various chips
        hwmon: (nct7904) Fix incorrect temperature limitation register setting of LTD.
        hwmon: (as370-hwmon) Add DT bindings for Synaptics AS370 PVT
        hwmon: Add Synaptics AS370 PVT sensor driver
        pmbus: (ibm-cffps) Add support for version 2 of the PSU
        dt-bindings: hwmon: Document ibm,cffps2 compatible string
        hwmon: (iio_hwmon) Enable power exporting from IIO
        ...
      6729fb66
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8e97be2a
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
       "The latest meager RAS updates:
      
         - Enable processing of action-optional MCEs which have the Overflow
           bit set (Tony Luck)
      
         - -Wmissing-prototypes warning fix and a build fix (Valdis
           Klētnieks)"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        RAS: Build debugfs.o only when enabled in Kconfig
        RAS: Fix prototype warnings
        x86/mce: Don't check for the overflow bit on action optional machine checks
      8e97be2a
    • Linus Torvalds's avatar
      Merge tag 'edac_for_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · ff881842
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "The new thing this time around is that we have three maintainers now
        and a new, old repo. New because it is new for the EDAC tree which is
        hosted there from now on and old because it is Tony's and mine's old
        RAS repo which we still use occasionally when the stuff isn't in tip.
      
        Summary:
      
         -  EDAC tree has three maintainers and one new designated reviewer
            now, so that the work can scale better.
      
         -  New driver for Mellanox' BlueField SoC DDR controller (Shravan
            Kumar Ramani)
      
         -  AMD Rome support in amd64_edac (Yazen Ghannam and Isaac Vaughn)
      
         -  Misc fixes, cleanups and code improvements"
      
      * tag 'edac_for_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/amd64: Add PCI device IDs for family 17h, model 70h
        MAINTAINERS: Add Robert as a EDAC reviewer
        EDAC/mc_sysfs: Make debug messages consistent
        EDAC/mc_sysfs: Remove pointless gotos
        EDAC: Prefer 'unsigned int' to bare use of 'unsigned'
        EDAC/amd64: Support asymmetric dual-rank DIMMs
        EDAC/amd64: Cache secondary Chip Select registers
        EDAC/amd64: Decode syndrome before translating address
        EDAC/amd64: Find Chip Select memory size using Address Mask
        EDAC/amd64: Initialize DIMM info for systems with more than two channels
        EDAC/amd64: Recognize DRAM device type ECC capability
        EDAC/amd64: Support more than two controllers for chip selects handling
        EDAC/mc: Cleanup _edac_mc_free() code
        EDAC, pnd2: Fix ioremap() size in dnv_rd_reg()
        EDAC, mellanox: Add ECC support for BlueField DDR4
        EDAC/altera: Use the proper type for the IRQ status bits
        EDAC/mc: Fix grain_bits calculation
        edac: altera: Move Stratix10 SDRAM ECC to peripheral
        MAINTAINERS: update EDAC entry to reflect current tree and maintainers
      ff881842
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-20190902' of git://git.infradead.org/users/jjs/linux-tpmdd · a7bd4bcf
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "A new driver for fTPM living inside ARM TEE was added this round.
      
        In addition to that, there are three bug fixes and one clean up"
      
      * tag 'tpmdd-next-20190902' of git://git.infradead.org/users/jjs/linux-tpmdd:
        tpm/tpm_ftpm_tee: Document fTPM TEE driver
        tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
        tpm: Remove a deprecated comments about implicit sysfs locking
        tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
        tpm_tis_core: Turn on the TPM before probing IRQ's
        MAINTAINERS: fix style in KEYS-TRUSTED entry
      a7bd4bcf
    • Linus Torvalds's avatar
      Merge tag 'core-process-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · c17112a5
      Linus Torvalds authored
      Pull pidfd/waitid updates from Christian Brauner:
       "This contains two features and various tests.
      
        First, it adds support for waiting on process through pidfds by adding
        the P_PIDFD type to the waitid() syscall. This completes the basic
        functionality of the pidfd api (cf. [1]). In the meantime we also have
        a new adition to the userspace projects that make use of the pidfd
        api. The qt project was nice enough to send a mail pointing out that
        they have a pr up to switch to the pidfd api (cf. [2]).
      
        Second, this tag contains an extension to the waitid() syscall to make
        it possible to wait on the current process group in a race free manner
        (even though the actual problem is very unlikely) by specifing 0
        together with the P_PGID type. This extension traces back to a
        discussion on the glibc development mailing list.
      
        There are also a range of tests for the features above. Additionally,
        the test-suite which detected the pidfd-polling race we fixed in [3]
        is included in this tag"
      
      [1] https://lwn.net/Articles/794707/
      [2] https://codereview.qt-project.org/c/qt/qtbase/+/108456
      [3] commit b191d649 ("pidfd: fix a poll race when setting exit_state")
      
      * tag 'core-process-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        waitid: Add support for waiting for the current process group
        tests: add pidfd poll tests
        tests: move common definitions and functions into pidfd.h
        pidfd: add pidfd_wait tests
        pidfd: add P_PIDFD to waitid()
      c17112a5
  2. 15 Sep, 2019 4 commits
    • Linus Torvalds's avatar
      Linux 5.3 · 4d856f72
      Linus Torvalds authored
      4d856f72
    • Linus Torvalds's avatar
      Revert "ext4: make __ext4_get_inode_loc plug" · 72dbcf72
      Linus Torvalds authored
      This reverts commit b03755ad.
      
      This is sad, and done for all the wrong reasons.  Because that commit is
      good, and does exactly what it says: avoids a lot of small disk requests
      for the inode table read-ahead.
      
      However, it turns out that it causes an entirely unrelated problem: the
      getrandom() system call was introduced back in 2014 by commit
      c6e9d6f3 ("random: introduce getrandom(2) system call"), and people
      use it as a convenient source of good random numbers.
      
      But part of the current semantics for getrandom() is that it waits for
      the entropy pool to fill at least partially (unlike /dev/urandom).  And
      at least ArchLinux apparently has a systemd that uses getrandom() at
      boot time, and the improvements in IO patterns means that existing
      installations suddenly start hanging, waiting for entropy that will
      never happen.
      
      It seems to be an unlucky combination of not _quite_ enough entropy,
      together with a particular systemd version and configuration.  Lennart
      says that the systemd-random-seed process (which is what does this early
      access) is supposed to not block any other boot activity, but sadly that
      doesn't actually seem to be the case (possibly due bogus dependencies on
      cryptsetup for encrypted swapspace).
      
      The correct fix is to fix getrandom() to not block when it's not
      appropriate, but that fix is going to take a lot more discussion.  Do we
      just make it act like /dev/urandom by default, and add a new flag for
      "wait for entropy"? Do we add a boot-time option? Or do we just limit
      the amount of time it will wait for entropy?
      
      So in the meantime, we do the revert to give us time to discuss the
      eventual fix for the fundamental problem, at which point we can re-apply
      the ext4 inode table access optimization.
      Reported-by: default avatarAhmed S. Darwish <darwish.07@gmail.com>
      Cc: Ted Ts'o <tytso@mit.edu>
      Cc: Willy Tarreau <w@1wt.eu>
      Cc: Alexander E. Patrakov <patrakov@gmail.com>
      Cc: Lennart Poettering <mzxreary@0pointer.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      72dbcf72
    • Mark Brown's avatar
      Merge branch 'spi-5.4' into spi-next · b769c5ba
      Mark Brown authored
      b769c5ba
    • Mark Brown's avatar
      Merge branch 'spi-5.3' into spi-linus · 262a2f33
      Mark Brown authored
      262a2f33
  3. 14 Sep, 2019 12 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 1609d760
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "The main change here is a revert of reverts. We recently simplified
        some code that was thought unnecessary; however, since then KVM has
        grown quite a few cond_resched()s and for that reason the simplified
        code is prone to livelocks---one CPUs tries to empty a list of guest
        page tables while the others keep adding to them. This adds back the
        generation-based zapping of guest page tables, which was not
        unnecessary after all.
      
        On top of this, there is a fix for a kernel memory leak and a couple
        of s390 fixlets as well"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86/mmu: Reintroduce fast invalidate/zap for flushing memslot
        KVM: x86: work around leak of uninitialized stack contents
        KVM: nVMX: handle page fault in vmread
        KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl
        KVM: s390: kvm_s390_vm_start_migration: check dirty_bitmap before using it as target for memset()
      1609d760
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 1f9c632c
      Linus Torvalds authored
      Pull virtio fix from Michael Tsirkin:
       "A last minute revert
      
        The 32-bit build got broken by the latest defence in depth patch.
        Revert and we'll try again in the next cycle"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        Revert "vhost: block speculation of translated descriptors"
      1f9c632c
    • Linus Torvalds's avatar
      Merge tag 'riscv/for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · b03c036e
      Linus Torvalds authored
      Pull RISC-V fix from Paul Walmsley:
       "Last week, Palmer and I learned that there was an error in the RISC-V
        kernel image header format that could make it less compatible with the
        ARM64 kernel image header format. I had missed this error during my
        original reviews of the patch.
      
        The kernel image header format is an interface that impacts
        bootloaders, QEMU, and other user tools. Those packages must be
        updated to align with whatever is merged in the kernel. We would like
        to avoid proliferating these image formats by keeping the RISC-V
        header as close as possible to the existing ARM64 header. Since the
        arch/riscv patch that adds support for the image header was merged
        with our v5.3-rc1 pull request as commit 0f327f2a ("RISC-V: Add
        an Image header that boot loader can parse."), we think it wise to try
        to fix this error before v5.3 is released.
      
        The fix itself should be backwards-compatible with any project that
        has already merged support for premature versions of this interface.
        It primarily involves ensuring that the RISC-V image header has
        something useful in the same field as the ARM64 image header"
      
      * tag 'riscv/for-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        riscv: modify the Image header to improve compatibility with the ARM64 header
      b03c036e
    • Michael S. Tsirkin's avatar
      Revert "vhost: block speculation of translated descriptors" · 0d4a3f2a
      Michael S. Tsirkin authored
      This reverts commit a89db445.
      
      I was hasty to include this patch, and it breaks the build on 32 bit.
      Defence in depth is good but let's do it properly.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      0d4a3f2a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 36024fcf
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Don't corrupt xfrm_interface parms before validation, from Nicolas
          Dichtel.
      
       2) Revert use of usb-wakeup in btusb, from Mario Limonciello.
      
       3) Block ipv6 packets in bridge netfilter if ipv6 is disabled, from
          Leonardo Bras.
      
       4) IPS_OFFLOAD not honored in ctnetlink, from Pablo Neira Ayuso.
      
       5) Missing ULP check in sock_map, from John Fastabend.
      
       6) Fix receive statistic handling in forcedeth, from Zhu Yanjun.
      
       7) Fix length of SKB allocated in 6pack driver, from Christophe
          JAILLET.
      
       8) ip6_route_info_create() returns an error pointer, not NULL. From
          Maciej Żenczykowski.
      
       9) Only add RDS sock to the hashes after rs_transport is set, from
          Ka-Cheong Poon.
      
      10) Don't double clean TX descriptors in ixgbe, from Ilya Maximets.
      
      11) Presence of transmit IPSEC offload in an SKB is not tested for
          correctly in ixgbe and ixgbevf. From Steffen Klassert and Jeff
          Kirsher.
      
      12) Need rcu_barrier() when register_netdevice() takes one of the
          notifier based failure paths, from Subash Abhinov Kasiviswanathan.
      
      13) Fix leak in sctp_do_bind(), from Mao Wenan.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (72 commits)
        cdc_ether: fix rndis support for Mediatek based smartphones
        sctp: destroy bucket if failed to bind addr
        sctp: remove redundant assignment when call sctp_get_port_local
        sctp: change return type of sctp_get_port_local
        ixgbevf: Fix secpath usage for IPsec Tx offload
        sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
        ixgbe: Fix secpath usage for IPsec TX offload.
        net: qrtr: fix memort leak in qrtr_tun_write_iter
        net: Fix null de-reference of device refcount
        ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
        tun: fix use-after-free when register netdev failed
        tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
        ixgbe: fix double clean of Tx descriptors with xdp
        ixgbe: Prevent u8 wrapping of ITR value to something less than 10us
        mlx4: fix spelling mistake "veify" -> "verify"
        net: hns3: fix spelling mistake "undeflow" -> "underflow"
        net: lmc: fix spelling mistake "runnin" -> "running"
        NFC: st95hf: fix spelling mistake "receieve" -> "receive"
        net/rds: An rds_sock is added too early to the hash table
        mac80211: Do not send Layer 2 Update frame before authorization
        ...
      36024fcf
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 1c4c5e25
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
      
       - tmio: Fixup runtime PM management during probe and remove
      
       - sdhci-pci-o2micro: Fix eMMC initialization for an AMD SoC
      
       - bcm2835: Prevent lockups when terminating work
      
      * tag 'mmc-v5.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: tmio: Fixup runtime PM management during remove
        mmc: tmio: Fixup runtime PM management during probe
        Revert "mmc: tmio: move runtime PM enablement to the driver implementations"
        Revert "mmc: sdhci: Remove unneeded quirk2 flag of O2 SD host controller"
        Revert "mmc: bcm2835: Terminate timeout work synchronously"
      1c4c5e25
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2019-09-13' of git://anongit.freedesktop.org/drm/drm · 592b8d87
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "From the maintainer summit, just some last minute fixes for final:
      
        lima:
         - fix gem_wait ioctl
      
        core:
         - constify modes list
      
        i915:
         - DP MST high color depth regression
         - GPU hangs on vulkan compute workloads"
      
      * tag 'drm-fixes-2019-09-13' of git://anongit.freedesktop.org/drm/drm:
        drm/lima: fix lima_gem_wait() return value
        drm/i915: Restore relaxed padding (OCL_OOB_SUPPRES_ENABLE) for skl+
        drm/i915: Limit MST to <= 8bpc once again
        drm/modes: Make the whitelist more const
      592b8d87
    • Paolo Bonzini's avatar
      Merge tag 'kvm-s390-master-5.3-1' of... · a9c20bb0
      Paolo Bonzini authored
      Merge tag 'kvm-s390-master-5.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into kvm-master
      
      KVM: s390: Fixes for 5.3
      
      - prevent a user triggerable oops in the migration code
      - do not leak kernel stack content
      a9c20bb0
    • Sean Christopherson's avatar
      KVM: x86/mmu: Reintroduce fast invalidate/zap for flushing memslot · 002c5f73
      Sean Christopherson authored
      James Harvey reported a livelock that was introduced by commit
      d012a06a ("Revert "KVM: x86/mmu: Zap only the relevant pages when
      removing a memslot"").
      
      The livelock occurs because kvm_mmu_zap_all() as it exists today will
      voluntarily reschedule and drop KVM's mmu_lock, which allows other vCPUs
      to add shadow pages.  With enough vCPUs, kvm_mmu_zap_all() can get stuck
      in an infinite loop as it can never zap all pages before observing lock
      contention or the need to reschedule.  The equivalent of kvm_mmu_zap_all()
      that was in use at the time of the reverted commit (4e103134, "KVM:
      x86/mmu: Zap only the relevant pages when removing a memslot") employed
      a fast invalidate mechanism and was not susceptible to the above livelock.
      
      There are three ways to fix the livelock:
      
      - Reverting the revert (commit d012a06a) is not a viable option as
        the revert is needed to fix a regression that occurs when the guest has
        one or more assigned devices.  It's unlikely we'll root cause the device
        assignment regression soon enough to fix the regression timely.
      
      - Remove the conditional reschedule from kvm_mmu_zap_all().  However, although
        removing the reschedule would be a smaller code change, it's less safe
        in the sense that the resulting kvm_mmu_zap_all() hasn't been used in
        the wild for flushing memslots since the fast invalidate mechanism was
        introduced by commit 6ca18b69 ("KVM: x86: use the fast way to
        invalidate all pages"), back in 2013.
      
      - Reintroduce the fast invalidate mechanism and use it when zapping shadow
        pages in response to a memslot being deleted/moved, which is what this
        patch does.
      
      For all intents and purposes, this is a revert of commit ea145aac
      ("Revert "KVM: MMU: fast invalidate all pages"") and a partial revert of
      commit 7390de1e ("Revert "KVM: x86: use the fast way to invalidate
      all pages""), i.e. restores the behavior of commit 5304b8d3 ("KVM:
      MMU: fast invalidate all pages") and commit 6ca18b69 ("KVM: x86:
      use the fast way to invalidate all pages") respectively.
      
      Fixes: d012a06a ("Revert "KVM: x86/mmu: Zap only the relevant pages when removing a memslot"")
      Reported-by: default avatarJames Harvey <jamespharvey20@gmail.com>
      Cc: Alex Willamson <alex.williamson@redhat.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      002c5f73
    • Fuqian Huang's avatar
      KVM: x86: work around leak of uninitialized stack contents · 541ab2ae
      Fuqian Huang authored
      Emulation of VMPTRST can incorrectly inject a page fault
      when passed an operand that points to an MMIO address.
      The page fault will use uninitialized kernel stack memory
      as the CR2 and error code.
      
      The right behavior would be to abort the VM with a KVM_EXIT_INTERNAL_ERROR
      exit to userspace; however, it is not an easy fix, so for now just ensure
      that the error code and CR2 are zero.
      Signed-off-by: default avatarFuqian Huang <huangfq.daxian@gmail.com>
      Cc: stable@vger.kernel.org
      [add comment]
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      541ab2ae
    • Paolo Bonzini's avatar
      KVM: nVMX: handle page fault in vmread · f7eea636
      Paolo Bonzini authored
      The implementation of vmread to memory is still incomplete, as it
      lacks the ability to do vmread to I/O memory just like vmptrst.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      f7eea636
    • Paul Walmsley's avatar
      riscv: modify the Image header to improve compatibility with the ARM64 header · 474efecb
      Paul Walmsley authored
      Part of the intention during the definition of the RISC-V kernel image
      header was to lay the groundwork for a future merge with the ARM64
      image header.  One error during my original review was not noticing
      that the RISC-V header's "magic" field was at a different size and
      position than the ARM64's "magic" field.  If the existing ARM64 Image
      header parsing code were to attempt to parse an existing RISC-V kernel
      image header format, it would see a magic number 0.  This is
      undesirable, since it's our intention to align as closely as possible
      with the ARM64 header format.  Another problem was that the original
      "res3" field was not being initialized correctly to zero.
      
      Address these issues by creating a 32-bit "magic2" field in the RISC-V
      header which matches the ARM64 "magic" field.  RISC-V binaries will
      store "RSC\x05" in this field.  The intention is that the use of the
      existing 64-bit "magic" field in the RISC-V header will be deprecated
      over time.  Increment the minor version number of the file format to
      indicate this change, and update the documentation accordingly.  Fix
      the assembler directives in head.S to ensure that reserved fields are
      properly zero-initialized.
      Signed-off-by: default avatarPaul Walmsley <paul.walmsley@sifive.com>
      Reported-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      Reviewed-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      Cc: Atish Patra <atish.patra@wdc.com>
      Cc: Karsten Merker <merker@debian.org>
      Link: https://lore.kernel.org/linux-riscv/194c2f10c9806720623430dbf0cc59a965e50448.camel@wdc.com/T/#u
      Link: https://lore.kernel.org/linux-riscv/mhng-755b14c4-8f35-4079-a7ff-e421fd1b02bc@palmer-si-x1e/T/#t
      474efecb
  4. 13 Sep, 2019 5 commits
    • Bjørn Mork's avatar
      cdc_ether: fix rndis support for Mediatek based smartphones · 4d7ffcf3
      Bjørn Mork authored
      A Mediatek based smartphone owner reports problems with USB
      tethering in Linux.  The verbose USB listing shows a rndis_host
      interface pair (e0/01/03 + 10/00/00), but the driver fails to
      bind with
      
      [  355.960428] usb 1-4: bad CDC descriptors
      
      The problem is a failsafe test intended to filter out ACM serial
      functions using the same 02/02/ff class/subclass/protocol as RNDIS.
      The serial functions are recognized by their non-zero bmCapabilities.
      
      No RNDIS function with non-zero bmCapabilities were known at the time
      this failsafe was added. But it turns out that some Wireless class
      RNDIS functions are using the bmCapabilities field. These functions
      are uniquely identified as RNDIS by their class/subclass/protocol, so
      the failing test can safely be disabled.  The same applies to the two
      types of Misc class RNDIS functions.
      
      Applying the failsafe to Communication class functions only retains
      the original functionality, and fixes the problem for the Mediatek based
      smartphone.
      
      Tow examples of CDC functional descriptors with non-zero bmCapabilities
      from Wireless class RNDIS functions are:
      
      0e8d:000a  Mediatek Crosscall Spider X5 3G Phone
      
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x0f
                connection notifications
                sends break
                line coding and serial state
                get/set/clear comm features
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          1
      
      and
      
      19d2:1023  ZTE K4201-z
      
            CDC Header:
              bcdCDC               1.10
            CDC ACM:
              bmCapabilities       0x02
                line coding and serial state
            CDC Call Management:
              bmCapabilities       0x03
                call management
                use DataInterface
              bDataInterface          1
            CDC Union:
              bMasterInterface        0
              bSlaveInterface         1
      
      The Mediatek example is believed to apply to most smartphones with
      Mediatek firmware.  The ZTE example is most likely also part of a larger
      family of devices/firmwares.
      Suggested-by: default avatarLars Melin <larsm17@gmail.com>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4d7ffcf3
    • David S. Miller's avatar
      Merge branch 'sctp_do_bind-leak' · ae3b06ed
      David S. Miller authored
      Mao Wenan says:
      
      ====================
      fix memory leak for sctp_do_bind
      
      First two patches are to do cleanup, remove redundant assignment,
      and change return type of sctp_get_port_local.
      Third patch is to fix memory leak for sctp_do_bind if failed
      to bind address.
      
      v2: add one patch to change return type of sctp_get_port_local.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ae3b06ed
    • Mao Wenan's avatar
      sctp: destroy bucket if failed to bind addr · 29b99f54
      Mao Wenan authored
      There is one memory leak bug report:
      BUG: memory leak
      unreferenced object 0xffff8881dc4c5ec0 (size 40):
        comm "syz-executor.0", pid 5673, jiffies 4298198457 (age 27.578s)
        hex dump (first 32 bytes):
          02 00 00 00 81 88 ff ff 00 00 00 00 00 00 00 00  ................
          f8 63 3d c1 81 88 ff ff 00 00 00 00 00 00 00 00  .c=.............
        backtrace:
          [<0000000072006339>] sctp_get_port_local+0x2a1/0xa00 [sctp]
          [<00000000c7b379ec>] sctp_do_bind+0x176/0x2c0 [sctp]
          [<000000005be274a2>] sctp_bind+0x5a/0x80 [sctp]
          [<00000000b66b4044>] inet6_bind+0x59/0xd0 [ipv6]
          [<00000000c68c7f42>] __sys_bind+0x120/0x1f0 net/socket.c:1647
          [<000000004513635b>] __do_sys_bind net/socket.c:1658 [inline]
          [<000000004513635b>] __se_sys_bind net/socket.c:1656 [inline]
          [<000000004513635b>] __x64_sys_bind+0x3e/0x50 net/socket.c:1656
          [<0000000061f2501e>] do_syscall_64+0x72/0x2e0 arch/x86/entry/common.c:296
          [<0000000003d1e05e>] entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      This is because in sctp_do_bind, if sctp_get_port_local is to
      create hash bucket successfully, and sctp_add_bind_addr failed
      to bind address, e.g return -ENOMEM, so memory leak found, it
      needs to destroy allocated bucket.
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarMao Wenan <maowenan@huawei.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      29b99f54
    • Mao Wenan's avatar
      sctp: remove redundant assignment when call sctp_get_port_local · e0e4b8de
      Mao Wenan authored
      There are more parentheses in if clause when call sctp_get_port_local
      in sctp_do_bind, and redundant assignment to 'ret'. This patch is to
      do cleanup.
      Signed-off-by: default avatarMao Wenan <maowenan@huawei.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0e4b8de
    • Mao Wenan's avatar
      sctp: change return type of sctp_get_port_local · 8e2ef6ab
      Mao Wenan authored
      Currently sctp_get_port_local() returns a long
      which is either 0,1 or a pointer casted to long.
      It's neither of the callers use the return value since
      commit 62208f12 ("net: sctp: simplify sctp_get_port").
      Now two callers are sctp_get_port and sctp_do_bind,
      they actually assumend a casted to an int was the same as
      a pointer casted to a long, and they don't save the return
      value just check whether it is zero or non-zero, so
      it would better change return type from long to int for
      sctp_get_port_local.
      Signed-off-by: default avatarMao Wenan <maowenan@huawei.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8e2ef6ab