Skip to content
  1. Sep 12, 2020
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · e8878ab8
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "There's some driver specific fixes here plus one core fix for memory
        leaks that could be triggered by a potential race condition when
        cleaning up after we have split transfers to fit into what the
        controller can support"
      
      * tag 'spi-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: stm32: fix pm_runtime_get_sync() error checking
        spi: Fix memory leak on splited transfers
        spi: spi-cadence-quadspi: Fix mapping of buffers for DMA reads
        spi: stm32: Rate-limit the 'Communication suspended' message
        spi: spi-loopback-test: Fix out-of-bounds read
        spi: spi-cadence-quadspi: Populate get_name() interface
        MAINTAINERS: add myself as maintainer for spi-fsl-dspi driver
      e8878ab8
    • Linus Torvalds's avatar
      Merge tag 'regulator-fix-v5.9-rc4' of... · 8b6ce251
      Linus Torvalds authored
      Merge tag 'regulator-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fixes from Mark Brown:
       "The biggest set of fixes here is those from Michał Mirosław fixing
        some locking issues with coupled regulators that are triggered in
        cases where a coupled regulator is used by a device involved in
        fs_reclaim like eMMC storage.
      
        These are relatively serious for the affected systems, though the
        circumstances where they trigger are very rare"
      
      * tag 'regulator-fix-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: pwm: Fix machine constraints application
        regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive()
        regulator: remove superfluous lock in regulator_resolve_coupling()
        regulator: cleanup regulator_ena_gpio_free()
        regulator: plug of_node leak in regulator_register()'s error path
        regulator: push allocation in set_consumer_device_supply() out of lock
        regulator: push allocations in create_regulator() outside of lock
        regulator: push allocation in regulator_ena_gpio_request() out of lock
        regulator: push allocation in regulator_init_coupling() outside of lock
        regulator: fix spelling mistake "Cant" -> "Can't"
        regulator: cros-ec-regulator: Add NULL test for devm_kmemdup call
      8b6ce251
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 063d6a4c
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - sdio: Restore ~20% performance drop for SDHCI drivers, by using
           mmc_pre_req() and mmc_post_req() for SDIO requests.
      
        MMC host:
         - sdhci-of-esdhc: Fix support for erratum eSDHC7
         - mmc_spi: Allow the driver to be built when CONFIG_HAS_DMA is unset
         - sdhci-msm: Use retries to fix tuning
         - sdhci-acpi: Fix resume for eMMC HS400 mode"
      
      * tag 'mmc-v5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdio: Use mmc_pre_req() / mmc_post_req()
        mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt
        mmc: mmc_spi: Allow the driver to be built when CONFIG_HAS_DMA is unset
        mmc: sdhci-msm: Add retries when all tuning phases are found valid
        mmc: sdhci-acpi: Clear amd_sdhci_host on reset
      063d6a4c
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-09-11' of git://anongit.freedesktop.org/drm/drm · d67f2ec1
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular fixes, not much a major amount. One thing though is Laurent
        fixed some Kconfig issues, and I'm carrying the rapidio kconfig change
        so the drm one for xlnx driver works. He hadn't got a response from
        rapidio maintainers.
      
        Otherwise, virtio, sun4i, tve200, ingenic have some fixes, one audio
        fix for i915 and a core docs fix.
      
        kconfig:
         - rapidio/xlnx kconfig fix
      
        core:
         - Documentation fix
      
        i915:
         - audio regression fix
      
        virtio:
         - Fix double free in virtio
         - Fix virtio unblank
         - Remove output->enabled from virtio, as it should use crtc_state
      
        sun4i:
         - Add missing put_device in sun4i, and other fixes
         - Handle sun4i alpha on lowest plane correctly
      
        tv200:
         - Fix tve200 enable/disable
      
        ingenic
         - Small ingenic fixes"
      
      * tag 'drm-fixes-2020-09-11' of git://anongit.freedesktop.org/drm/drm:
        drm/i915: fix regression leading to display audio probe failure on GLK
        drm: xlnx: dpsub: Fix DMADEVICES Kconfig dependency
        rapidio: Replace 'select' DMAENGINES 'with depends on'
        drm/virtio: drop virtio_gpu_output->enabled
        drm/sun4i: backend: Disable alpha on the lowest plane on the A20
        drm/sun4i: backend: Support alpha property on lowest plane
        drm/sun4i: Fix DE2 YVU handling
        drm/tve200: Stabilize enable/disable
        dma-buf: fence-chain: Document missing dma_fence_chain_init() parameter in kerneldoc
        dma-buf: Fix kerneldoc of dma_buf_set_name()
        drm/virtio: fix unblank
        Documentation: fix dma-buf.rst underline length warning
        drm/sun4i: Fix dsi dcs long write function
        drm/ingenic: Fix driver not probing when IPU port is missing
        drm/ingenic: Fix leak of device_node pointer
        drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux()
        drm/virtio: Revert "drm/virtio: Call the right shmem helpers"
      d67f2ec1
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · b1df2a07
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "A number of driver bug fixes and a few recent regressions:
      
         - Several bug fixes for bnxt_re. Crashing, incorrect data reported,
           and corruption on new HW
      
         - Memory leak and crash in rxe
      
         - Fix sysfs corruption in rxe if the netdev name is too long
      
         - Fix a crash on error unwind in the new cq_pool code
      
         - Fix kobject panics in rtrs by working device lifetime properly
      
         - Fix a data corruption bug in iser target related to misaligned
           buffers"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        IB/isert: Fix unaligned immediate-data handling
        RDMA/rtrs-srv: Set .release function for rtrs srv device during device init
        RDMA/bnxt_re: Remove set but not used variable 'qplib_ctx'
        RDMA/core: Fix reported speed and width
        RDMA/core: Fix unsafe linked list traversal after failing to allocate CQ
        RDMA/bnxt_re: Remove the qp from list only if the qp destroy succeeds
        RDMA/bnxt_re: Fix driver crash on unaligned PSN entry address
        RDMA/bnxt_re: Restrict the max_gids to 256
        RDMA/bnxt_re: Static NQ depth allocation
        RDMA/bnxt_re: Fix the qp table indexing
        RDMA/bnxt_re: Do not report transparent vlan from QP1
        RDMA/mlx4: Read pkey table length instead of hardcoded value
        RDMA/rxe: Fix panic when calling kmem_cache_create()
        RDMA/rxe: Fix memleak in rxe_mem_init_user
        RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
        RDMA/rtrs-srv: Replace device_register with device_initialize and device_add
      b1df2a07
    • Peter Oberparleiter's avatar
      gcov: add support for GCC 10.1 · 40249c69
      Peter Oberparleiter authored
      
      
      Using gcov to collect coverage data for kernels compiled with GCC 10.1
      causes random malfunctions and kernel crashes.  This is the result of a
      changed GCOV_COUNTERS value in GCC 10.1 that causes a mismatch between
      the layout of the gcov_info structure created by GCC profiling code and
      the related structure used by the kernel.
      
      Fix this by updating the in-kernel GCOV_COUNTERS value.  Also re-enable
      config GCOV_KERNEL for use with GCC 10.
      
      Reported-by: default avatarColin Ian King <colin.king@canonical.com>
      Reported-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Signed-off-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
      Tested-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Tested-and-Acked-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      40249c69
  2. Sep 11, 2020
  3. Sep 10, 2020
  4. Sep 09, 2020
  5. Sep 08, 2020
  6. Sep 07, 2020
    • Marek Vasut's avatar
      spi: stm32: Rate-limit the 'Communication suspended' message · ea8be08c
      Marek Vasut authored
      The 'spi_stm32 44004000.spi: Communication suspended' message means that
      when using PIO, the kernel did not read the FIFO fast enough and so the
      SPI controller paused the transfer. Currently, this is printed on every
      single such event, so if the kernel is busy and the controller is pausing
      the transfers often, the kernel will be all the more busy scrolling this
      message into the log buffer every few milliseconds. That is not helpful.
      
      Instead, rate-limit the message and print it every once in a while. It is
      not possible to use the default dev_warn_ratelimited(), because that is
      still too verbose, as it prints 10 lines (DEFAULT_RATELIMIT_BURST) every
      5 seconds (DEFAULT_RATELIMIT_INTERVAL). The policy here is to print 1 line
      every 50 seconds (DEFAULT_RATELIMIT_INTERVAL * 10), because 1 line is more
      than enough and the cycles saved on printing are better left to the CPU to
      handle the SPI. However, dev_warn_once() is also not useful, as the user
      should be aware that this condition is possibly recurring or ongoing. Thus
      the custom rate-limit policy.
      
      Finally, turn the message from dev_warn() to dev_dbg(), since the system
      does not suffer any sort of malfunction if this message appears, it is
      just slowing down. This further reduces the printing into the log buffer
      and frees the CPU to do useful work.
      
      Fixes: dcbe0d84
      
       ("spi: add driver for STM32 SPI controller")
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Alexandre Torgue <alexandre.torgue@st.com>
      Cc: Amelie Delaunay <amelie.delaunay@st.com>
      Cc: Antonio Borneo <borneo.antonio@gmail.com>
      Cc: Mark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20200905151913.117775-1-marex@denx.de
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      ea8be08c
    • Adrian Hunter's avatar
      mmc: sdio: Use mmc_pre_req() / mmc_post_req() · f0c393e2
      Adrian Hunter authored
      SDHCI changed from using a tasklet to finish requests, to using an IRQ
      thread i.e. commit c07a48c2 ("mmc: sdhci: Remove finish_tasklet").
      Because this increased the latency to complete requests, a preparatory
      change was made to complete the request from the IRQ handler if
      possible i.e. commit 19d2f695
      
       ("mmc: sdhci: Call mmc_request_done()
      from IRQ handler if possible").  That alleviated the situation for MMC
      block devices because the MMC block driver makes use of mmc_pre_req()
      and mmc_post_req() so that successful requests are completed in the IRQ
      handler and any DMA unmapping is handled separately in mmc_post_req().
      However SDIO was still affected, and an example has been reported with
      up to 20% degradation in performance.
      
      Looking at SDIO I/O helper functions, sdio_io_rw_ext_helper() appeared
      to be a possible candidate for making use of asynchronous requests
      within its I/O loops, but analysis revealed that these loops almost
      never iterate more than once, so the complexity of the change would not
      be warrented.
      
      Instead, mmc_pre_req() and mmc_post_req() are added before and after I/O
      submission (mmc_wait_for_req) in mmc_io_rw_extended().  This still has
      the potential benefit of reducing the duration of interrupt handlers, as
      well as addressing the latency issue for SDHCI.  It also seems a more
      reasonable solution than forcing drivers to do everything in the IRQ
      handler.
      
      Reported-by: default avatarDmitry Osipenko <digetx@gmail.com>
      Fixes: c07a48c2
      
       ("mmc: sdhci: Remove finish_tasklet")
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: default avatarDmitry Osipenko <digetx@gmail.com>
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/r/20200903082007.18715-1-adrian.hunter@intel.com
      
      
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      f0c393e2
    • Chris Packham's avatar
      mmc: sdhci-of-esdhc: Don't walk device-tree on every interrupt · 060522d8
      Chris Packham authored
      Commit b214fe59
      
       ("mmc: sdhci-of-esdhc: add erratum eSDHC7 support")
      added code to check for a specific compatible string in the device-tree
      on every esdhc interrupat. Instead of doing this record the quirk in
      struct sdhci_esdhc and lookup the struct in esdhc_irq.
      
      Signed-off-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
      Link: https://lore.kernel.org/r/20200903012029.25673-1-chris.packham@alliedtelesis.co.nz
      Fixes: b214fe59
      
       ("mmc: sdhci-of-esdhc: add erratum eSDHC7 support")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      060522d8
    • Ulf Hansson's avatar
      mmc: mmc_spi: Allow the driver to be built when CONFIG_HAS_DMA is unset · a395acf0
      Ulf Hansson authored
      The commit cd57d07b ("sh: don't allow non-coherent DMA for NOMMU") made
      CONFIG_NO_DMA to be set for some platforms, for good reasons.
      Consequentially, CONFIG_HAS_DMA doesn't get set, which makes the DMA
      mapping interface to be built as stub functions, but also prevent the
      mmc_spi driver from being built as it depends on CONFIG_HAS_DMA.
      
      It turns out that for some odd cases, the driver still relied on the DMA
      mapping interface, even if the DMA was not actively being used.
      
      To fixup the behaviour, let's drop the build dependency for CONFIG_HAS_DMA.
      Moreover, as to allow the driver to succeed probing, let's move the DMA
      initializations behind "#ifdef CONFIG_HAS_DMA".
      
      Fixes: cd57d07b
      
       ("sh: don't allow non-coherent DMA for NOMMU")
      Reported-by: default avatarRich Felker <dalias@libc.org>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Tested-by: default avatarRich Felker <dalias@libc.org>
      Link: https://lore.kernel.org/r/20200901150438.228887-1-ulf.hansson@linaro.org
      a395acf0
    • Douglas Anderson's avatar
      mmc: sdhci-msm: Add retries when all tuning phases are found valid · 9d5dcefb
      Douglas Anderson authored
      As the comments in this patch say, if we tune and find all phases are
      valid it's _almost_ as bad as no phases being found valid.  Probably
      all phases are not really reliable but we didn't detect where the
      unreliable place is.  That means we'll essentially be guessing and
      hoping we get a good phase.
      
      This is not just a problem in theory.  It was causing real problems on
      a real board.  On that board, most often phase 10 is found as the only
      invalid phase, though sometimes 10 and 11 are invalid and sometimes
      just 11.  Some percentage of the time, however, all phases are found
      to be valid.  When this happens, the current logic will decide to use
      phase 11.  Since phase 11 is sometimes found to be invalid, this is a
      bad choice.  Sure enough, when phase 11 is picked we often get mmc
      errors later in boot.
      
      I have seen cases where all phases were found to be valid 3 times in a
      row, so increase the retry count to 10 just to be extra sure.
      
      Fixes: 415b5a75
      
       ("mmc: sdhci-msm: Add platform_execute_tuning implementation")
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarVeerabhadrarao Badiganti <vbadigan@codeaurora.org>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Link: https://lore.kernel.org/r/20200827075809.1.If179abf5ecb67c963494db79c3bc4247d987419b@changeid
      
      
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      9d5dcefb
    • Raul E Rangel's avatar
      mmc: sdhci-acpi: Clear amd_sdhci_host on reset · 2cf9bfe9
      Raul E Rangel authored
      The commit 61d7437e ("mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040")
      broke resume for eMMC HS400. When the system suspends the eMMC controller
      is powered down. So, on resume we need to reinitialize the controller.
      Although, amd_sdhci_host was not getting cleared, so the DLL was never
      re-enabled on resume. This results in HS400 being non-functional.
      
      To fix the problem, this change clears the tuned_clock flag, clears the
      dll_enabled flag and disables the DLL on reset.
      
      Fixes: 61d7437e
      
       ("mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040")
      Signed-off-by: default avatarRaul E Rangel <rrangel@chromium.org>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Link: https://lore.kernel.org/r/20200831150517.1.I93c78bfc6575771bb653c9d3fca5eb018a08417d@changeid
      
      
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      2cf9bfe9
    • Linus Torvalds's avatar
      Linux 5.9-rc4 · f4d51dff
      Linus Torvalds authored
      f4d51dff
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.9-2020-09-06' of git://git.kernel.dk/linux-block · a8205e31
      Linus Torvalds authored
      Pull more io_uring fixes from Jens Axboe:
       "Two followup fixes. One is fixing a regression from this merge window,
        the other is two commits fixing cancelation of deferred requests.
      
        Both have gone through full testing, and both spawned a few new
        regression test additions to liburing.
      
         - Don't play games with const, properly store the output iovec and
           assign it as needed.
      
         - Deferred request cancelation fix (Pavel)"
      
      * tag 'io_uring-5.9-2020-09-06' of git://git.kernel.dk/linux-block:
        io_uring: fix linked deferred ->files cancellation
        io_uring: fix cancel of deferred reqs with ->files
        io_uring: fix explicit async read/write mapping for large segments
      a8205e31
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 2ccdd9f8
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - three Intel VT-d fixes to fix address handling on 32bit, fix a NULL
         pointer dereference bug and serialize a hardware register access as
         required by the VT-d spec.
      
       - two patches for AMD IOMMU to force AMD GPUs into translation mode
         when memory encryption is active and disallow using IOMMUv2
         functionality.  This makes the AMDGPU driver work when memory
         encryption is active.
      
       - two more fixes for AMD IOMMU to fix updating the Interrupt Remapping
         Table Entries.
      
       - MAINTAINERS file update for the Qualcom IOMMU driver.
      
      * tag 'iommu-fixes-v5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Handle 36bit addressing for x86-32
        iommu/amd: Do not use IOMMUv2 functionality when SME is active
        iommu/amd: Do not force direct mapping when SME is active
        iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
        iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
        iommu/vt-d: Fix NULL pointer dereference in dev_iommu_priv_set()
        iommu/vt-d: Serialize IOMMU GCMD register modifications
        MAINTAINERS: Update QUALCOMM IOMMU after Arm SMMU drivers move
      2ccdd9f8
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2020-09-06' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 015b3155
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
      
       - more generic entry code ABI fallout
      
       - debug register handling bugfixes
      
       - fix vmalloc mappings on 32-bit kernels
      
       - kprobes instrumentation output fix on 32-bit kernels
      
       - fix over-eager WARN_ON_ONCE() on !SMAP hardware
      
       - NUMA debugging fix
      
       - fix Clang related crash on !RETPOLINE kernels
      
      * tag 'x86-urgent-2020-09-06' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry: Unbreak 32bit fast syscall
        x86/debug: Allow a single level of #DB recursion
        x86/entry: Fix AC assertion
        tracing/kprobes, x86/ptrace: Fix regs argument order for i386
        x86, fakenuma: Fix invalid starting node ID
        x86/mm/32: Bring back vmalloc faulting on x86_32
        x86/cmdline: Disable jump tables for cmdline.c
      015b3155