1. 07 Aug, 2021 1 commit
  2. 06 Aug, 2021 25 commits
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · c9194f32
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "A regression fix, bug fix, and a comment cleanup for ext4"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix potential htree corruption when growing large_dir directories
        ext4: remove conflicting comment from __ext4_forget
        ext4: fix potential uninitialized access to retval in kmmpd
      c9194f32
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.14-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 2c4b1ec6
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "Fix tracepoint race between static_call and callback data
      
        As callbacks to a tracepoint are paired with the data that is passed
        in when the callback is registered to the tracepoint, it must have
        that data passed to the callback when the tracepoint is triggered,
        else bad things will happen. To keep the two together, they are both
        assigned to a tracepoint structure and added to an array. The
        tracepoint call site will dereference the structure (via RCU) and call
        the callback in that structure along with the data in that structure.
        This keeps the callback and data tightly coupled.
      
        Because of the overhead that retpolines have on tracepoint callbacks,
        if there's only one callback attached to a tracepoint (a common case),
        then it is called via a static call (code modified to do a direct call
        instead of an indirect call). But to implement this, the data had to
        be decoupled from the callback, as now the callback is implemented via
        a direct call from the static call and not an indirect call from the
        dereferenced structure.
      
        Note, the static call only calls a callback used when there's a single
        callback attached to the tracepoint. If more than one callback is
        attached to the same tracepoint, then the static call will call an
        iterator function that goes back to dereferencing the structure
        keeping the callback and its data tightly coupled again.
      
        Issues can arise when going from 0 callbacks to one, as the static
        call is assigned to the callback, and it must take care that the data
        passed to it is loaded before the static call calls the callback.
        Going from 1 to 2 callbacks is not an issue, as long as the static
        call is updated to the iterator before the tracepoint structure array
        is updated via RCU. Going from 2 to more or back down to 2 is not an
        issue as the iterator can handle all theses cases. But going from 2 to
        1, care must be taken as the static call is now calling a callback and
        the data that is loaded must be the data for that callback.
      
        Care was taken to ensure the callback and data would be in-sync, but
        after a bug was reported, it became clear that not enough was done to
        make sure that was the case. These changes address this.
      
        The first change is to compare the old and new data instead of the old
        and new callback, as it's the data that can corrupt the callback, even
        if the callback is the same (something getting freed).
      
        The next change is to convert these transitions into states, to make
        it easier to know when a synchronization is needed, and to perform
        those synchronizations. The problem with this patch is that it slows
        down disabling all events from under a second, to making it take over
        10 seconds to do the same work. But that is addressed in the final
        patch.
      
        The final patch uses the RCU state functions to keep track of the RCU
        state between the transitions, and only needs to perform the
        synchronization if an RCU synchronization hasn't been done already.
        This brings the performance of disabling all events back to its
        original value. That's because no synchronization is required between
        disabling tracepoints but is required when enabling a tracepoint after
        its been disabled. If an RCU synchronization happens after the
        tracepoint is disabled, and before it is re-enabled, there's no need
        to do the synchronization again.
      
        Both the second and third patch have subtle complexities that they are
        separated into two patches. But because the second patch causes such a
        regression in performance, the third patch adds a "Fixes" tag to the
        second patch, such that the two must be backported together and not
        just the second patch"
      
      * tag 'trace-v5.14-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracepoint: Use rcu get state and cond sync for static call updates
        tracepoint: Fix static call function vs data state mismatch
        tracepoint: static call: Compare data on transition from 2->1 callees
      2c4b1ec6
    • Linus Torvalds's avatar
      Merge tag 'pm-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 9917de73
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "Fix a recent regression in the timer events oriented (TEO) cpuidle
        governor causing it to misbehave when idle state 0 is disabled and
        rename two local variables for improved clarity on top of that"
      
      * tag 'pm-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle: teo: Rename two local variables in teo_select()
        cpuidle: teo: Fix alternative idle state lookup
      9917de73
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5d609689
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Revert a recent ACPICA commit causing boot issues to appear on some
        systems"
      
      * tag 'acpi-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "ACPICA: Fix memory leak caused by _CID repair function"
      5d609689
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 3dc064d2
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Lots of small fixes for Arm SoCs this time, nothing too worrying:
      
         - omap/beaglebone boot regression fix in gpt12 timer
      
         - revert for i.mx8 soc driver breaking as a platform_driver
      
         - kexec/kdump fixes for op-tee
      
         - various fixes for incorrect DT settings on imx, mvebu, omap, stm32,
           and tegra causing problems.
      
         - device tree fixes for static checks in nomadik, versatile, stm32
      
         - code fixes for issues found in build testing and with static
           checking on tegra, ixp4xx, imx, omap"
      
      * tag 'soc-fixes-5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (36 commits)
        soc: ixp4xx/qmgr: fix invalid __iomem access
        soc: ixp4xx: fix printing resources
        ARM: ixp4xx: goramo_mlr depends on old PCI driver
        ARM: ixp4xx: fix compile-testing soc drivers
        soc/tegra: Make regulator couplers depend on CONFIG_REGULATOR
        ARM: dts: nomadik: Fix up interrupt controller node names
        ARM: dts: stm32: Fix touchscreen IRQ line assignment on DHCOM
        ARM: dts: stm32: Disable LAN8710 EDPD on DHCOM
        ARM: dts: stm32: Prefer HW RTC on DHCOM SoM
        omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator
        ARM: dts: am437x-l4: fix typo in can@0 node
        ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
        bus: ti-sysc: AM3: RNG is GP only
        ARM: omap2+: hwmod: fix potential NULL pointer access
        arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode
        arm64: dts: armada-3720-turris-mox: fixed indices for the SDHC controllers
        ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins
        ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
        ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz
        arm64: dts: ls1028: sl28: fix networking for variant 2
        ...
      3dc064d2
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 73f25536
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "It's all pretty minor but the main fix is sorting out how we deal with
        return values from 32-bit system calls as audit expects error codes to
        be sign-extended to 64 bits
      
        Summary:
      
         - Fix extension/truncation of return values from 32-bit system calls
      
         - Fix interaction between unwinding and tracing
      
         - Fix spurious toolchain warning emitted during make
      
         - Fix Kconfig help text for RANDOMIZE_MODULE_REGION_FULL"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: stacktrace: avoid tracing arch_stack_walk()
        arm64: stacktrace: fix comment
        arm64: fix the doc of RANDOMIZE_MODULE_REGION_FULL
        arm64: move warning about toolchains to archprepare
        arm64: fix compat syscall return truncation
      73f25536
    • Linus Torvalds's avatar
      Merge tag 'mips-fixes_5.14_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · cb407fc8
      Linus Torvalds authored
      Pull MIPS fix from Thomas Bogendoerfer:
       "Fix PMD accounting change"
      
      * tag 'mips-fixes_5.14_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: check return value of pgtable_pmd_page_ctor
      cb407fc8
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 894d6f40
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A small collection of fixes for SPI, small mostly driver specific
        things plus a fix for module autoloading which hadn't been working
        properly for DT systems"
      
      * tag 'spi-fix-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: cadence-quadspi: Fix check condition for DTR ops
        spi: mediatek: Fix fifo transfer
        spi: imx: mx51-ecspi: Fix CONFIGREG delay comment
        spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation
        spi: update modalias_show after of_device_uevent_modalias support
        spi: meson-spicc: fix memory leak in meson_spicc_remove
        spi: spi-mux: Add module info needed for autoloading
      894d6f40
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 4f1be396
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "A bunch of driver fixes, notably:
      
         - idxd driver fixes for submission race, driver remove sequence,
           setup sequence for MSIXPERM, array index and updating descriptor
           vector
      
         - usb-dmac, pm reference leak fix
      
         - xilinx_dma, read-after-free fix
      
         - uniphier-xdmac fix for using atomic readl_poll_timeout_atomic()
      
         - of-dma, router_xlate to return
      
         - imx-dma, generic dma fix"
      
      * tag 'dmaengine-fix-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine:
        dmaengine: imx-dma: configure the generic DMA type to make it work
        dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available
        dmaengine: stm32-dmamux: Fix PM usage counter unbalance in stm32 dmamux ops
        dmaengine: stm32-dma: Fix PM usage counter imbalance in stm32 dma ops
        dmaengine: uniphier-xdmac: Use readl_poll_timeout_atomic() in atomic state
        dmaengine: idxd: fix submission race window
        dmaengine: idxd: fix sequence for pci driver remove() and shutdown()
        dmaengine: idxd: fix desc->vector that isn't being updated
        dmaengine: idxd: fix setup sequence for MSIXPERM table
        dmaengine: idxd: fix array index when int_handles are being used
        dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
        dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
      4f1be396
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · b4b927fc
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Several small recent regressions - rather more than usual, but nothing
        too scary. Good to know people are testing.
      
         - Typo causing incorrect operation of the mlx5 mkey cache
           expiration
      
         - Revert a CM patch that is breaking some ULPs
      
         - Typo breaking SRQ in rxe
      
         - Revert a rxe patch breaking icrc calculation
      
         - Static checker warning about unbalanced locking in hns
      
         - Subtle cxgb4 regression from a recent atomic to refcount
           conversion"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs.
        RDMA/hns: Fix the double unlock problem of poll_sem
        RDMA/rxe: Restore setting tot_len in the IPv4 header
        RDMA/rxe: Use the correct size of wqe when processing SRQ
        RDMA/cma: Revert INIT-INIT patch
        RDMA/mlx5: Delay emptying a cache entry when a new MR is added to it recently
      b4b927fc
    • Linus Torvalds's avatar
      Merge tag 'sound-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 484faec8
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes:
      
         - A few regression fixes (PCM core fixes, USB-audio fixes)
      
         - Follow up fixes for the USB-audio mixer changes in this cycle
      
         - A long-standing ALSA sequencer race bug fix
      
         - Usual device-specific quirks for HD- and USB-audio"
      
      * tag 'sound-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: Fix racy deletion of subscriber
        ALSA: memalloc: Fix regression with SNDRV_DMA_TYPE_CONTINUOUS
        ALSA: pcm - fix mmap capability check for the snd-dummy driver
        ALSA: usb-audio: Avoid unnecessary or invalid connector selection at resume
        ALSA: hda/realtek: add mic quirk for Acer SF314-42
        ALSA: usb-audio: Add registration quirk for JBL Quantum 600
        ALSA: hda/realtek: Fix headset mic for Acer SWIFT SF314-56 (ALC256)
        ALSA: usb-audio: Fix superfluous autosuspend recovery
        ALSA: usb-audio: fix incorrect clock source setting
        ALSA: scarlett2: Fix line out/speaker switching notifications
        ALSA: scarlett2: Correct channel mute status after mute button pressed
        ALSA: scarlett2: Fix Direct Monitor control name for 2i2
        ALSA: scarlett2: Fix Mute/Dim/MSD Mode control names
      484faec8
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-08-06' of git://anongit.freedesktop.org/drm/drm · 1254f05c
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular weekly fixes pull, live from a Brisbane lockdown with kids at
        home.
      
        A big bunch of scattered amdgpu fixes, but they are all pretty small,
        minor i915 fixes, kmb, and one vmwgfx regression fixes, all pretty
        quiet for this time.
      
        amdgpu:
         - Fix potential out-of-bounds read when updating GPUVM mapping
         - Renoir powergating fix
         - Yellow Carp updates
         - 8K fix for navi1x
         - Beige Goby updates and new DIDs
         - Fix DMUB firmware version output
         - EDP fix
         - pmops config fix
      
        i915:
         - Call i915_globals_exit if pci_register_device fails
         - (follow on fix for section mismatch)
         - Correct SFC_DONE register offset
      
        kmb:
         - DMA fix
         - driver date/version macros
      
        vmwgfx:
         - Fix I/O memory access on 64-bit systems"
      
      * tag 'drm-fixes-2021-08-06' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu: add DID for beige goby
        drm/amdgpu/display: fix DMUB firmware version info
        drm/amd/display: workaround for hard hang on HPD on native DP
        drm/amd/display: Fix resetting DCN3.1 HW when resuming from S4
        drm/amd/display: Increase stutter watermark for dcn303
        drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X
        drm/amd/display: Assume LTTPR interop for DCN31+
        drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled
        drm/amd/pm: update yellow carp pmfw interface version
        drm/i915: fix i915_globals_exit() section mismatch error
        drm/i915: Call i915_globals_exit() if pci_register_device() fails
        drm/i915: Correct SFC_DONE register offset
        drm/vmwgfx: Fix a 64bit regression on svga3
        drm/amdgpu: fix the doorbell missing when in CGPG issue for renoir.
        drm/amdgpu: Fix out-of-bounds read when update mapping
        drm/kmb: Define driver date and major/minor version
        drm/kmb: Enable LCD DMA for low TVDDCV
      1254f05c
    • Theodore Ts'o's avatar
      ext4: fix potential htree corruption when growing large_dir directories · 877ba3f7
      Theodore Ts'o authored
      Commit b5776e75 ("ext4: fix potential htree index checksum
      corruption) removed a required restart when multiple levels of index
      nodes need to be split.  Fix this to avoid directory htree corruptions
      when using the large_dir feature.
      
      Cc: stable@kernel.org # v5.11
      Cc: Благодаренко Артём <artem.blagodarenko@gmail.com>
      Fixes: b5776e75 ("ext4: fix potential htree index checksum corruption)
      Reported-by: default avatarDenis <denis@voxelsoft.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      877ba3f7
    • Mathieu Desnoyers's avatar
      tracepoint: Use rcu get state and cond sync for static call updates · 7b40066c
      Mathieu Desnoyers authored
      State transitions from 1->0->1 and N->2->1 callbacks require RCU
      synchronization. Rather than performing the RCU synchronization every
      time the state change occurs, which is quite slow when many tracepoints
      are registered in batch, instead keep a snapshot of the RCU state on the
      most recent transitions which belong to a chain, and conditionally wait
      for a grace period on the last transition of the chain if one g.p. has
      not elapsed since the last snapshot.
      
      This applies to both RCU and SRCU.
      
      This brings the performance regression caused by commit 231264d6
      ("Fix: tracepoint: static call function vs data state mismatch") back to
      what it was originally.
      
      Before this commit:
      
        # trace-cmd start -e all
        # time trace-cmd start -p nop
      
        real	0m10.593s
        user	0m0.017s
        sys	0m0.259s
      
      After this commit:
      
        # trace-cmd start -e all
        # time trace-cmd start -p nop
      
        real	0m0.878s
        user	0m0.000s
        sys	0m0.103s
      
      Link: https://lkml.kernel.org/r/20210805192954.30688-1-mathieu.desnoyers@efficios.com
      Link: https://lore.kernel.org/io-uring/4ebea8f0-58c9-e571-fd30-0ce4f6f09c70@samba.org/
      
      Cc: stable@vger.kernel.org
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: Stefan Metzmacher <metze@samba.org>
      Fixes: 231264d6 ("Fix: tracepoint: static call function vs data state mismatch")
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Reviewed-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      7b40066c
    • Dakshaja Uppalapati's avatar
      RDMA/iw_cxgb4: Fix refcount underflow while destroying cqs. · 2638a323
      Dakshaja Uppalapati authored
      Previous atomic increment/decrement logic expects the atomic count to be
      '0' after the final decrement.
      
      Replacing atomic count with refcount does not allow that, as
      refcount_dec() considers count of 1 as underflow and triggers a kernel
      splat.
      
      Fix the current refcount logic by using the usual pattern of decrementing
      the refcount and test if it is '0' on the final deref in
      c4iw_destroy_cq(). Use wait_for_completion() instead of wait_event().
      
      Fixes: 7183451f ("RDMA/cxgb4: Use refcount_t instead of atomic_t for reference counting")
      Link: https://lore.kernel.org/r/1628167412-12114-1-git-send-email-dakshaja@chelsio.comSigned-off-by: default avatarDakshaja Uppalapati <dakshaja@chelsio.com>
      Reviewed-by: default avatarPotnuri Bharat Teja <bharat@chelsio.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      2638a323
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.14-2021-08-05' of... · d186f9c2
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.14-2021-08-05' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.14-2021-08-05:
      
      amdgpu:
      - Fix potential out-of-bounds read when updating GPUVM mapping
      - Renoir powergating fix
      - Yellow Carp updates
      - 8K fix for navi1x
      - Beige Goby updates and new DIDs
      - Fix DMUB firmware version output
      - EDP fix
      - pmops config fix
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210806011635.1055841-1-alexander.deucher@amd.com
      d186f9c2
    • Chengming Gui's avatar
      drm/amdgpu: add DID for beige goby · e00f543d
      Chengming Gui authored
      Add device ids.
      Signed-off-by: default avatarChengming Gui <Jack.Gui@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      e00f543d
    • Shirish S's avatar
      drm/amdgpu/display: fix DMUB firmware version info · 0e99e960
      Shirish S authored
      DMUB firmware info is printed before it gets initialized.
      Correct this order to ensure true value is conveyed.
      Signed-off-by: default avatarShirish S <shirish.s@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      0e99e960
    • Qingqing Zhuo's avatar
      drm/amd/display: workaround for hard hang on HPD on native DP · c4152b29
      Qingqing Zhuo authored
      [Why]
      HPD disable and enable sequences are not mutually exclusive
      on Linux. For HPDs that spans over 1s (i.e. HPD low = 1s),
      part of the disable sequence (specifically, a request to SMU
      to lower refclk) could come right before the call to PHY
      enable, causing DMUB to access an unresponsive PHY
      and thus a hard hang on the system.
      
      [How]
      Disable 48mhz refclk off on native DP.
      Reviewed-by: default avatarHersen Wu <hersenxs.wu@amd.com>
      Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Signed-off-by: default avatarQingqing Zhuo <qingqing.zhuo@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      c4152b29
    • Jude Shih's avatar
      drm/amd/display: Fix resetting DCN3.1 HW when resuming from S4 · d5c5ac3a
      Jude Shih authored
      [Why] On S4 resume we also need to fix detection of when to reload DMCUB
      firmware because we're currently using the VBIOS version which isn't
      compatible with the driver version.
      
      [How] Update the hardware init check for DCN31 since it's the ASIC that
      has this issue.
      Reviewed-by: default avatarNicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
      Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Signed-off-by: default avatarJude Shih <jude.shih@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d5c5ac3a
    • Bing Guo's avatar
      drm/amd/display: Increase stutter watermark for dcn303 · cd7b0531
      Bing Guo authored
      [Why&How]
      Hardware team suggested to use SRExitTime= 35.5us as w/a to prevent
      underflow in certain modes.
      Reviewed-by: default avatarMartin Leung <martin.leung@amd.com>
      Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Signed-off-by: default avatarBing Guo <bing.guo@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      cd7b0531
    • Bing Guo's avatar
      drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X · 06050a0f
      Bing Guo authored
      Why:
      In DCN2x, HW doesn't automatically divide MASTER_UPDATE_LOCK_DB_X
      by the number of pipes ODM Combined.
      
      How:
      Set MASTER_UPDATE_LOCK_DB_X to the value that is adjusted by the
      number of pipes ODM Combined.
      Reviewed-by: default avatarMartin Leung <martin.leung@amd.com>
      Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Signed-off-by: default avatarBing Guo <bing.guo@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      06050a0f
    • Wesley Chalmers's avatar
      drm/amd/display: Assume LTTPR interop for DCN31+ · ffb9ee8e
      Wesley Chalmers authored
      [WHY]
      For DCN31 onward, LTTPR is to be enabled and set to Transparent by
      VBIOS.  Driver is to assume that VBIOS has done this without needing to
      check the VBIOS interop bit.
      
      [HOW]
      Add LTTPR enable and interop VBIOS bits into dc->caps, and force-set the
      interop bit to true for DCN31+.
      Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
      Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
      Signed-off-by: default avatarWesley Chalmers <Wesley.Chalmers@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      ffb9ee8e
    • Randy Dunlap's avatar
      drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled · 5706cb3c
      Randy Dunlap authored
      'pm_suspend_target_state' is only available when CONFIG_PM_SLEEP
      is set/enabled. OTOH, when both SUSPEND and HIBERNATION are not set,
      PM_SLEEP is not set, so this variable cannot be used.
      
      ../drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c: In function ‘amdgpu_acpi_is_s0ix_active’:
      ../drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:1046:11: error: ‘pm_suspend_target_state’ undeclared (first use in this function); did you mean ‘__KSYM_pm_suspend_target_state’?
          return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
                 ^~~~~~~~~~~~~~~~~~~~~~~
                 __KSYM_pm_suspend_target_state
      
      Also use shorter IS_ENABLED(CONFIG_foo) notation for checking the
      2 config symbols.
      
      Fixes: 91e27371 ("drm/amdgpu: Check pmops for desired suspend state")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Christian König <christian.koenig@amd.com>
      Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>
      Cc: amd-gfx@lists.freedesktop.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: linux-next@vger.kernel.org
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      5706cb3c
    • Xiaomeng Hou's avatar
      drm/amd/pm: update yellow carp pmfw interface version · 23c0ebac
      Xiaomeng Hou authored
      Correct yellow carp driver-PMFW interface version to v4.
      Signed-off-by: default avatarXiaomeng Hou <Xiaomeng.Hou@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      23c0ebac
  3. 05 Aug, 2021 14 commits
    • Mathieu Desnoyers's avatar
      tracepoint: Fix static call function vs data state mismatch · 231264d6
      Mathieu Desnoyers authored
      On a 1->0->1 callbacks transition, there is an issue with the new
      callback using the old callback's data.
      
      Considering __DO_TRACE_CALL:
      
              do {                                                            \
                      struct tracepoint_func *it_func_ptr;                    \
                      void *__data;                                           \
                      it_func_ptr =                                           \
                              rcu_dereference_raw((&__tracepoint_##name)->funcs); \
                      if (it_func_ptr) {                                      \
                              __data = (it_func_ptr)->data;                   \
      
      ----> [ delayed here on one CPU (e.g. vcpu preempted by the host) ]
      
                              static_call(tp_func_##name)(__data, args);      \
                      }                                                       \
              } while (0)
      
      It has loaded the tp->funcs of the old callback, so it will try to use the old
      data. This can be fixed by adding a RCU sync anywhere in the 1->0->1
      transition chain.
      
      On a N->2->1 transition, we need an rcu-sync because you may have a
      sequence of 3->2->1 (or 1->2->1) where the element 0 data is unchanged
      between 2->1, but was changed from 3->2 (or from 1->2), which may be
      observed by the static call. This can be fixed by adding an
      unconditional RCU sync in transition 2->1.
      
      Note, this fixes a correctness issue at the cost of adding a tremendous
      performance regression to the disabling of tracepoints.
      
      Before this commit:
      
        # trace-cmd start -e all
        # time trace-cmd start -p nop
      
        real	0m0.778s
        user	0m0.000s
        sys	0m0.061s
      
      After this commit:
      
        # trace-cmd start -e all
        # time trace-cmd start -p nop
      
        real	0m10.593s
        user	0m0.017s
        sys	0m0.259s
      
      A follow up fix will introduce a more lightweight scheme based on RCU
      get_state and cond_sync, that will return the performance back to what it
      was. As both this change and the lightweight versions are complex on their
      own, for bisecting any issues that this may cause, they are kept as two
      separate changes.
      
      Link: https://lkml.kernel.org/r/20210805132717.23813-3-mathieu.desnoyers@efficios.com
      Link: https://lore.kernel.org/io-uring/4ebea8f0-58c9-e571-fd30-0ce4f6f09c70@samba.org/
      
      Cc: stable@vger.kernel.org
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: Stefan Metzmacher <metze@samba.org>
      Fixes: d25e37d8 ("tracepoint: Optimize using static_call()")
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      231264d6
    • Mathieu Desnoyers's avatar
      tracepoint: static call: Compare data on transition from 2->1 callees · f7ec4121
      Mathieu Desnoyers authored
      On transition from 2->1 callees, we should be comparing .data rather
      than .func, because the same callback can be registered twice with
      different data, and what we care about here is that the data of array
      element 0 is unchanged to skip rcu sync.
      
      Link: https://lkml.kernel.org/r/20210805132717.23813-2-mathieu.desnoyers@efficios.com
      Link: https://lore.kernel.org/io-uring/4ebea8f0-58c9-e571-fd30-0ce4f6f09c70@samba.org/
      
      Cc: stable@vger.kernel.org
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: "Paul E. McKenney" <paulmck@kernel.org>
      Cc: Stefan Metzmacher <metze@samba.org>
      Fixes: 547305a6 ("tracepoint: Fix out of sync data passing by static caller")
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      f7ec4121
    • Linus Torvalds's avatar
      Merge tag 'net-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 902e7f37
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from ipsec.
      
        Current release - regressions:
      
         - sched: taprio: fix init procedure to avoid inf loop when dumping
      
         - sctp: move the active_key update after sh_keys is added
      
        Current release - new code bugs:
      
         - sparx5: fix build with old GCC & bitmask on 32-bit targets
      
        Previous releases - regressions:
      
         - xfrm: redo the PREEMPT_RT RCU vs hash_resize_mutex deadlock fix
      
         - xfrm: fixes for the compat netlink attribute translator
      
         - phy: micrel: Fix detection of ksz87xx switch
      
        Previous releases - always broken:
      
         - gro: set inner transport header offset in tcp/udp GRO hook to avoid
           crashes when such packets reach GSO
      
         - vsock: handle VIRTIO_VSOCK_OP_CREDIT_REQUEST, as required by spec
      
         - dsa: sja1105: fix static FDB entries on SJA1105P/Q/R/S and SJA1110
      
         - bridge: validate the NUD_PERMANENT bit when adding an extern_learn
           FDB entry
      
         - usb: lan78xx: don't modify phy_device state concurrently
      
         - usb: pegasus: check for errors of IO routines"
      
      * tag 'net-5.14-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (48 commits)
        net: vxge: fix use-after-free in vxge_device_unregister
        net: fec: fix use-after-free in fec_drv_remove
        net: pegasus: fix uninit-value in get_interrupt_interval
        net: ethernet: ti: am65-cpsw: fix crash in am65_cpsw_port_offload_fwd_mark_update()
        bnx2x: fix an error code in bnx2x_nic_load()
        net: wwan: iosm: fix recursive lock acquire in unregister
        net: wwan: iosm: correct data protocol mask bit
        net: wwan: iosm: endianness type correction
        net: wwan: iosm: fix lkp buildbot warning
        net: usb: lan78xx: don't modify phy_device state concurrently
        docs: networking: netdevsim rules
        net: usb: pegasus: Remove the changelog and DRIVER_VERSION.
        net: usb: pegasus: Check the return value of get_geristers() and friends;
        net/prestera: Fix devlink groups leakage in error flow
        net: sched: fix lockdep_set_class() typo error for sch->seqlock
        net: dsa: qca: ar9331: reorder MDIO write sequence
        VSOCK: handle VIRTIO_VSOCK_OP_CREDIT_REQUEST
        mptcp: drop unused rcu member in mptcp_pm_addr_entry
        net: ipv6: fix returned variable type in ip6_skb_dst_mtu
        nfp: update ethtool reporting of pauseframe control
        ...
      902e7f37
    • Apurva Nandan's avatar
      spi: cadence-quadspi: Fix check condition for DTR ops · 0395be96
      Apurva Nandan authored
      buswidth and dtr fields in spi_mem_op are only valid when the
      corresponding spi_mem_op phase has a non-zero length. For example,
      SPI NAND core doesn't set buswidth when using SPI_MEM_OP_NO_ADDR
      phase.
      
      Fix the dtr checks in set_protocol() and suppports_mem_op() to
      ignore empty spi_mem_op phases, as checking for dtr field in
      empty phase will result in false negatives.
      Signed-off-by: default avatarApurva Nandan <a-nandan@ti.com>
      Link: https://lore.kernel.org/r/20210716232504.182-3-a-nandan@ti.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      0395be96
    • Tetsuo Handa's avatar
      Bluetooth: defer cleanup of resources in hci_unregister_dev() · e0448092
      Tetsuo Handa authored
      syzbot is hitting might_sleep() warning at hci_sock_dev_event() due to
      calling lock_sock() with rw spinlock held [1].
      
      It seems that history of this locking problem is a trial and error.
      
      Commit b40df574 ("[PATCH] bluetooth: fix socket locking in
      hci_sock_dev_event()") in 2.6.21-rc4 changed bh_lock_sock() to
      lock_sock() as an attempt to fix lockdep warning.
      
      Then, commit 4ce61d1c ("[BLUETOOTH]: Fix locking in
      hci_sock_dev_event().") in 2.6.22-rc2 changed lock_sock() to
      local_bh_disable() + bh_lock_sock_nested() as an attempt to fix the
      sleep in atomic context warning.
      
      Then, commit 4b5dd696 ("Bluetooth: Remove local_bh_disable() from
      hci_sock.c") in 3.3-rc1 removed local_bh_disable().
      
      Then, commit e305509e ("Bluetooth: use correct lock to prevent UAF
      of hdev object") in 5.13-rc5 again changed bh_lock_sock_nested() to
      lock_sock() as an attempt to fix CVE-2021-3573.
      
      This difficulty comes from current implementation that
      hci_sock_dev_event(HCI_DEV_UNREG) is responsible for dropping all
      references from sockets because hci_unregister_dev() immediately
      reclaims resources as soon as returning from
      hci_sock_dev_event(HCI_DEV_UNREG).
      
      But the history suggests that hci_sock_dev_event(HCI_DEV_UNREG) was not
      doing what it should do.
      
      Therefore, instead of trying to detach sockets from device, let's accept
      not detaching sockets from device at hci_sock_dev_event(HCI_DEV_UNREG),
      by moving actual cleanup of resources from hci_unregister_dev() to
      hci_cleanup_dev() which is called by bt_host_release() when all
      references to this unregistered device (which is a kobject) are gone.
      
      Since hci_sock_dev_event(HCI_DEV_UNREG) no longer resets
      hci_pi(sk)->hdev, we need to check whether this device was unregistered
      and return an error based on HCI_UNREGISTER flag.  There might be subtle
      behavioral difference in "monitor the hdev" functionality; please report
      if you found something went wrong due to this patch.
      
      Link: https://syzkaller.appspot.com/bug?extid=a5df189917e79d5e59c9 [1]
      Reported-by: default avatarsyzbot <syzbot+a5df189917e79d5e59c9@syzkaller.appspotmail.com>
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Fixes: e305509e ("Bluetooth: use correct lock to prevent UAF of hdev object")
      Acked-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e0448092
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20210805' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 0b53abfc
      Linus Torvalds authored
      Pull selinux fix from Paul Moore:
       "One small SELinux fix for a problem where an error code was not being
        propagated back up to userspace when a bogus SELinux policy is loaded
        into the kernel"
      
      * tag 'selinux-pr-20210805' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: correct the return value when loads initial sids
      0b53abfc
    • Linus Torvalds's avatar
      Merge branch 'for-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 6209049e
      Linus Torvalds authored
      Pull ucounts fix from Eric Biederman:
       "Fix a subtle locking versus reference counting bug in the ucount
        changes, found by syzbot"
      
      * 'for-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        ucounts: Fix race condition between alloc_ucounts and put_ucounts
      6209049e
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 3c3e9027
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "Various tracing fixes:
      
         - Fix NULL pointer dereference caused by an error path
      
         - Give histogram calculation fields a size, otherwise it breaks
           synthetic creation based on them.
      
         - Reject strings being used for number calculations.
      
         - Fix recordmcount.pl warning on llvm building RISC-V allmodconfig
      
         - Fix the draw_functrace.py script to handle the new trace output
      
         - Fix warning of smp_processor_id() in preemptible code"
      
      * tag 'trace-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Quiet smp_processor_id() use in preemptable warning in hwlat
        scripts/tracing: fix the bug that can't parse raw_trace_func
        scripts/recordmcount.pl: Remove check_objcopy() and $can_use_local
        tracing: Reject string operand in the histogram expression
        tracing / histogram: Give calculation hist_fields a size
        tracing: Fix NULL pointer dereference in start_creating
      3c3e9027
    • Linus Torvalds's avatar
      Merge tag 's390-5.14-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 130951bb
      Linus Torvalds authored
      Pull s390 fixes from Heiko Carstens:
      
       - fix zstd build for -march=z900 (undefined reference to __clzdi2)
      
       - add missing .got.plts to vdso linker scripts to fix kpatch build
         errors
      
       - update defconfigs
      
      * tag 's390-5.14-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: update defconfigs
        s390/boot: fix zstd build for -march=z900
        s390/vdso: add .got.plt in vdso linker script
      130951bb
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 97fcc07b
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "Mostly bugfixes; plus, support for XMM arguments to Hyper-V hypercalls
        now obeys KVM_CAP_HYPERV_ENFORCE_CPUID.
      
        Both the XMM arguments feature and KVM_CAP_HYPERV_ENFORCE_CPUID are
        new in 5.14, and each did not know of the other"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds
        KVM: selftests: fix hyperv_clock test
        KVM: SVM: improve the code readability for ASID management
        KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
        KVM: Do not leak memory for duplicate debugfs directories
        KVM: selftests: Test access to XMM fast hypercalls
        KVM: x86: hyper-v: Check if guest is allowed to use XMM registers for hypercall input
        KVM: x86: Introduce trace_kvm_hv_hypercall_done()
        KVM: x86: hyper-v: Check access to hypercall before reading XMM registers
        KVM: x86: accept userspace interrupt only if no event is injected
      97fcc07b
    • Linus Torvalds's avatar
      Merge branch 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux · 611ffd8a
      Linus Torvalds authored
      Pull pcmcia fix from Dominik Brodowski:
       "Zheyu Ma found and fixed a null pointer dereference bug in the device
        driver for the i82092 card reader"
      
      * 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux:
        pcmcia: i82092: fix a null pointer dereference bug
      611ffd8a
    • Alex Xu (Hello71)'s avatar
      pipe: increase minimum default pipe size to 2 pages · 46c4c9d1
      Alex Xu (Hello71) authored
      This program always prints 4096 and hangs before the patch, and always
      prints 8192 and exits successfully after:
      
        int main()
        {
            int pipefd[2];
            for (int i = 0; i < 1025; i++)
                if (pipe(pipefd) == -1)
                    return 1;
            size_t bufsz = fcntl(pipefd[1], F_GETPIPE_SZ);
            printf("%zd\n", bufsz);
            char *buf = calloc(bufsz, 1);
            write(pipefd[1], buf, bufsz);
            read(pipefd[0], buf, bufsz-1);
            write(pipefd[1], buf, 1);
        }
      
      Note that you may need to increase your RLIMIT_NOFILE before running the
      program.
      
      Fixes: 759c0114 ("pipe: limit the per-user amount of pages allocated in pipes")
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/lkml/1628086770.5rn8p04n6j.none@localhost/
      Link: https://lore.kernel.org/lkml/1628127094.lxxn016tj7.none@localhost/Signed-off-by: default avatarAlex Xu (Hello71) <alex_y_xu@yahoo.ca>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      46c4c9d1
    • Jakub Kicinski's avatar
      Merge branch 'net-fix-use-after-free-bugs' · 6bb5318c
      Jakub Kicinski authored
      Pavel Skripkin says:
      
      ====================
      net: fix use-after-free bugs
      
      I've added new checker to smatch yesterday. It warns about using
      netdev_priv() pointer after free_{netdev,candev}() call. I hope, it will
      get into next smatch release.
      
      Some of the reported bugs are fixed and upstreamed already, but Dan ran new
      smatch with allmodconfig and found 2 more. Big thanks to Dan for doing it,
      because I totally forgot to do it.
      ====================
      
      Link: https://lore.kernel.org/r/cover.1628091954.git.paskripkin@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6bb5318c
    • Pavel Skripkin's avatar
      net: vxge: fix use-after-free in vxge_device_unregister · 942e560a
      Pavel Skripkin authored
      Smatch says:
      drivers/net/ethernet/neterion/vxge/vxge-main.c:3518 vxge_device_unregister() error: Using vdev after free_{netdev,candev}(dev);
      drivers/net/ethernet/neterion/vxge/vxge-main.c:3518 vxge_device_unregister() error: Using vdev after free_{netdev,candev}(dev);
      drivers/net/ethernet/neterion/vxge/vxge-main.c:3520 vxge_device_unregister() error: Using vdev after free_{netdev,candev}(dev);
      drivers/net/ethernet/neterion/vxge/vxge-main.c:3520 vxge_device_unregister() error: Using vdev after free_{netdev,candev}(dev);
      
      Since vdev pointer is netdev private data accessing it after free_netdev()
      call can cause use-after-free bug. Fix it by moving free_netdev() call at
      the end of the function
      
      Fixes: 6cca2003 ("vxge: cleanup probe error paths")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
      Reviewed-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      942e560a