1. 04 Dec, 2023 1 commit
  2. 28 Nov, 2023 7 commits
    • Jens Axboe's avatar
      io_uring: use fget/fput consistently · 73363c26
      Jens Axboe authored
      Normally within a syscall it's fine to use fdget/fdput for grabbing a
      file from the file table, and it's fine within io_uring as well. We do
      that via io_uring_enter(2), io_uring_register(2), and then also for
      cancel which is invoked from the latter. io_uring cannot close its own
      file descriptors as that is explicitly rejected, and for the cancel
      side of things, the file itself is just used as a lookup cookie.
      
      However, it is more prudent to ensure that full references are always
      grabbed. For anything threaded, either explicitly in the application
      itself or through use of the io-wq worker threads, this is what happens
      anyway. Generalize it and use fget/fput throughout.
      
      Also see the below link for more details.
      
      Link: https://lore.kernel.org/io-uring/CAG48ez1htVSO3TqmrF8QcX2WFuYTRM-VZ_N10i-VZgbtg=NNqw@mail.gmail.com/Suggested-by: default avatarJann Horn <jannh@google.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      73363c26
    • Jens Axboe's avatar
      io_uring: free io_buffer_list entries via RCU · 5cf4f52e
      Jens Axboe authored
      mmap_lock nests under uring_lock out of necessity, as we may be doing
      user copies with uring_lock held. However, for mmap of provided buffer
      rings, we attempt to grab uring_lock with mmap_lock already held from
      do_mmap(). This makes lockdep, rightfully, complain:
      
      WARNING: possible circular locking dependency detected
      6.7.0-rc1-00009-gff3337ebaf94-dirty #4438 Not tainted
      ------------------------------------------------------
      buf-ring.t/442 is trying to acquire lock:
      ffff00020e1480a8 (&ctx->uring_lock){+.+.}-{3:3}, at: io_uring_validate_mmap_request.isra.0+0x4c/0x140
      
      but task is already holding lock:
      ffff0000dc226190 (&mm->mmap_lock){++++}-{3:3}, at: vm_mmap_pgoff+0x124/0x264
      
      which lock already depends on the new lock.
      
      the existing dependency chain (in reverse order) is:
      
      -> #1 (&mm->mmap_lock){++++}-{3:3}:
             __might_fault+0x90/0xbc
             io_register_pbuf_ring+0x94/0x488
             __arm64_sys_io_uring_register+0x8dc/0x1318
             invoke_syscall+0x5c/0x17c
             el0_svc_common.constprop.0+0x108/0x130
             do_el0_svc+0x2c/0x38
             el0_svc+0x4c/0x94
             el0t_64_sync_handler+0x118/0x124
             el0t_64_sync+0x168/0x16c
      
      -> #0 (&ctx->uring_lock){+.+.}-{3:3}:
             __lock_acquire+0x19a0/0x2d14
             lock_acquire+0x2e0/0x44c
             __mutex_lock+0x118/0x564
             mutex_lock_nested+0x20/0x28
             io_uring_validate_mmap_request.isra.0+0x4c/0x140
             io_uring_mmu_get_unmapped_area+0x3c/0x98
             get_unmapped_area+0xa4/0x158
             do_mmap+0xec/0x5b4
             vm_mmap_pgoff+0x158/0x264
             ksys_mmap_pgoff+0x1d4/0x254
             __arm64_sys_mmap+0x80/0x9c
             invoke_syscall+0x5c/0x17c
             el0_svc_common.constprop.0+0x108/0x130
             do_el0_svc+0x2c/0x38
             el0_svc+0x4c/0x94
             el0t_64_sync_handler+0x118/0x124
             el0t_64_sync+0x168/0x16c
      
      From that mmap(2) path, we really just need to ensure that the buffer
      list doesn't go away from underneath us. For the lower indexed entries,
      they never go away until the ring is freed and we can always sanely
      reference those as long as the caller has a file reference. For the
      higher indexed ones in our xarray, we just need to ensure that the
      buffer list remains valid while we return the address of it.
      
      Free the higher indexed io_buffer_list entries via RCU. With that we can
      avoid needing ->uring_lock inside mmap(2), and simply hold the RCU read
      lock around the buffer list lookup and address check.
      
      To ensure that the arrayed lookup either returns a valid fully formulated
      entry via RCU lookup, add an 'is_ready' flag that we access with store
      and release memory ordering. This isn't needed for the xarray lookups,
      but doesn't hurt either. Since this isn't a fast path, retain it across
      both types. Similarly, for the allocated array inside the ctx, ensure
      we use the proper load/acquire as setup could in theory be running in
      parallel with mmap.
      
      While in there, add a few lockdep checks for documentation purposes.
      
      Cc: stable@vger.kernel.org
      Fixes: c56e022c ("io_uring: add support for user mapped provided buffer ring")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      5cf4f52e
    • Jens Axboe's avatar
      io_uring/kbuf: prune deferred locked cache when tearing down · 07d6063d
      Jens Axboe authored
      We used to just use our page list for final teardown, which would ensure
      that we got all the buffers, even the ones that were not on the normal
      cached list. But while moving to slab for the io_buffers, we know only
      prune this list, not the deferred locked list that we have. This can
      cause a leak of memory, if the workload ends up using the intermediate
      locked list.
      
      Fix this by always pruning both lists when tearing down.
      
      Fixes: b3a4dbc8 ("io_uring/kbuf: Use slab for struct io_buffer objects")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      07d6063d
    • Jens Axboe's avatar
      io_uring/kbuf: recycle freed mapped buffer ring entries · b10b73c1
      Jens Axboe authored
      Right now we stash any potentially mmap'ed provided ring buffer range
      for freeing at release time, regardless of when they get unregistered.
      Since we're keeping track of these ranges anyway, keep track of their
      registration state as well, and use that to recycle ranges when
      appropriate rather than always allocate new ones.
      
      The lookup is a basic scan of entries, checking for the best matching
      free entry.
      
      Fixes: c392cbec ("io_uring/kbuf: defer release of mapped buffer rings")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b10b73c1
    • Jens Axboe's avatar
      io_uring/kbuf: defer release of mapped buffer rings · c392cbec
      Jens Axboe authored
      If a provided buffer ring is setup with IOU_PBUF_RING_MMAP, then the
      kernel allocates the memory for it and the application is expected to
      mmap(2) this memory. However, io_uring uses remap_pfn_range() for this
      operation, so we cannot rely on normal munmap/release on freeing them
      for us.
      
      Stash an io_buf_free entry away for each of these, if any, and provide
      a helper to free them post ->release().
      
      Cc: stable@vger.kernel.org
      Fixes: c56e022c ("io_uring: add support for user mapped provided buffer ring")
      Reported-by: default avatarJann Horn <jannh@google.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      c392cbec
    • Jens Axboe's avatar
      io_uring: enable io_mem_alloc/free to be used in other parts · edecf168
      Jens Axboe authored
      In preparation for using these helpers, make them non-static and add
      them to our internal header.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      edecf168
    • Jens Axboe's avatar
      io_uring: don't guard IORING_OFF_PBUF_RING with SETUP_NO_MMAP · 6f007b14
      Jens Axboe authored
      This flag only applies to the SQ and CQ rings, it's perfectly valid
      to use a mmap approach for the provided ring buffers. Move the
      check into where it belongs.
      
      Cc: stable@vger.kernel.org
      Fixes: 03d89a2d ("io_uring: support for user allocated memory for rings/sqes")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      6f007b14
  3. 27 Nov, 2023 1 commit
    • Jens Axboe's avatar
      io_uring: don't allow discontig pages for IORING_SETUP_NO_MMAP · 820d070f
      Jens Axboe authored
      io_sqes_map() is used rather than io_mem_alloc(), if the application
      passes in memory for mapping rather than have the kernel allocate it and
      then mmap(2) the ranges. This then calls __io_uaddr_map() to perform the
      page mapping and pinning, which checks if we end up with the same pages,
      if more than one page is mapped. But this check is incorrect and only
      checks if the first and last pages are the same, where it really should
      be checking if the mapped pages are contigous. This allows mapping a
      single normal page, or a huge page range.
      
      Down the line we can add support for remapping pages to be virtually
      contigous, which is really all that io_uring cares about.
      
      Cc: stable@vger.kernel.org
      Fixes: 03d89a2d ("io_uring: support for user allocated memory for rings/sqes")
      Reported-by: default avatarJann Horn <jannh@google.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      820d070f
  4. 20 Nov, 2023 2 commits
  5. 15 Nov, 2023 1 commit
    • Jens Axboe's avatar
      io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval · a0d45c3f
      Jens Axboe authored
      A previous commit added a trylock for getting the SQPOLL thread info via
      fdinfo, but this introduced a regression where we often fail to get it if
      the thread is busy. For that case, we end up not printing the current CPU
      and PID info.
      
      Rather than rely on this lock, just print the pid we already stored in
      the io_sq_data struct, and ensure we update the current CPU every time
      we've slept or potentially rescheduled. The latter won't potentially be
      100% accurate, but that wasn't the case before either as the task can
      get migrated at any time unless it has been pinned at creation time.
      
      We retain keeping the io_sq_data dereference inside the ctx->uring_lock,
      as it has always been, as destruction of the thread and data happen below
      that. We could make this RCU safe, but there's little point in doing that.
      
      With this, we always print the last valid information we had, rather than
      have spurious outputs with missing information.
      
      Fixes: 7644b1a1 ("io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      a0d45c3f
  6. 13 Nov, 2023 1 commit
  7. 12 Nov, 2023 5 commits
  8. 11 Nov, 2023 1 commit
    • Linus Torvalds's avatar
      Merge tag 'probes-fixes-v6.7-rc1' of... · 3ca112b7
      Linus Torvalds authored
      Merge tag 'probes-fixes-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull probes fixes from Masami Hiramatsu:
      
       - Documentation update: Add a note about argument and return value
         fetching is the best effort because it depends on the type.
      
       - objpool: Fix to make internal global variables static in
         test_objpool.c.
      
       - kprobes: Unify kprobes_exceptions_nofify() prototypes. There are the
         same prototypes in asm/kprobes.h for some architectures, but some of
         them are missing the prototype and it causes a warning. So move the
         prototype into linux/kprobes.h.
      
       - tracing: Fix to check the tracepoint event and return event at
         parsing stage. The tracepoint event doesn't support %return but if
         $retval exists, it will be converted to %return silently. This finds
         that case and rejects it.
      
       - tracing: Fix the order of the descriptions about the parameters of
         __kprobe_event_gen_cmd_start() to be consistent with the argument
         list of the function.
      
      * tag 'probes-fixes-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing/kprobes: Fix the order of argument descriptions
        tracing: fprobe-event: Fix to check tracepoint event and return
        kprobes: unify kprobes_exceptions_nofify() prototypes
        lib: test_objpool: make global variables static
        Documentation: tracing: Add a note about argument and retval access
      3ca112b7
  9. 10 Nov, 2023 21 commits
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · 18553507
      Linus Torvalds authored
      Pull fbdev fixes and cleanups from Helge Deller:
      
       - fix double free and resource leaks in imsttfb
      
       - lots of remove callback cleanups and section mismatch fixes in
         omapfb, amifb and atmel_lcdfb
      
       - error code fix and memparse simplification in omapfb
      
      * tag 'fbdev-for-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev: (31 commits)
        fbdev: fsl-diu-fb: mark wr_reg_wa() static
        fbdev: amifb: Convert to platform remove callback returning void
        fbdev: amifb: Mark driver struct with __refdata to prevent section mismatch warning
        fbdev: hyperv_fb: fix uninitialized local variable use
        fbdev: omapfb/tpd12s015: Convert to platform remove callback returning void
        fbdev: omapfb/tfp410: Convert to platform remove callback returning void
        fbdev: omapfb/sharp-ls037v7dw01: Convert to platform remove callback returning void
        fbdev: omapfb/opa362: Convert to platform remove callback returning void
        fbdev: omapfb/hdmi: Convert to platform remove callback returning void
        fbdev: omapfb/dvi: Convert to platform remove callback returning void
        fbdev: omapfb/dsi-cm: Convert to platform remove callback returning void
        fbdev: omapfb/dpi: Convert to platform remove callback returning void
        fbdev: omapfb/analog-tv: Convert to platform remove callback returning void
        fbdev: atmel_lcdfb: Convert to platform remove callback returning void
        fbdev: omapfb/tpd12s015: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/tfp410: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/sharp-ls037v7dw01: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/opa362: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/hdmi: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        fbdev: omapfb/dvi: Don't put .remove() in .exit.text and drop suppress_bind_attrs
        ...
      18553507
    • Yujie Liu's avatar
      tracing/kprobes: Fix the order of argument descriptions · f032c53b
      Yujie Liu authored
      The order of descriptions should be consistent with the argument list of
      the function, so "kretprobe" should be the second one.
      
      int __kprobe_event_gen_cmd_start(struct dynevent_cmd *cmd, bool kretprobe,
                                       const char *name, const char *loc, ...)
      
      Link: https://lore.kernel.org/all/20231031041305.3363712-1-yujie.liu@intel.com/
      
      Fixes: 2a588dd1 ("tracing: Add kprobe event command generation functions")
      Suggested-by: default avatarMukesh Ojha <quic_mojha@quicinc.com>
      Signed-off-by: default avatarYujie Liu <yujie.liu@intel.com>
      Reviewed-by: default avatarMukesh Ojha <quic_mojha@quicinc.com>
      Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
      f032c53b
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2023-11-10' of git://anongit.freedesktop.org/drm/drm · c0d12d76
      Linus Torvalds authored
      Pull drm fixes from Daniel Vetter:
       "Dave's VPN to the big machine died, so it's on me to do fixes pr this
        and next week while everyone else is at plumbers.
      
         - big pile of amd fixes, but mostly for hw support newly added in 6.7
      
         - i915 fixes, mostly minor things
      
         - qxl memory leak fix
      
         - vc4 uaf fix in mock helpers
      
         - syncobj fix for DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE"
      
      * tag 'drm-next-2023-11-10' of git://anongit.freedesktop.org/drm/drm: (78 commits)
        drm/amdgpu: fix error handling in amdgpu_vm_init
        drm/amdgpu: Fix possible null pointer dereference
        drm/amdgpu: move UVD and VCE sched entity init after sched init
        drm/amdgpu: move kfd_resume before the ip late init
        drm/amd: Explicitly check for GFXOFF to be enabled for s0ix
        drm/amdgpu: Change WREG32_RLC to WREG32_SOC15_RLC where inst != 0 (v2)
        drm/amdgpu: Use correct KIQ MEC engine for gfx9.4.3 (v5)
        drm/amdgpu: add smu v13.0.6 pcs xgmi ras error query support
        drm/amdgpu: fix software pci_unplug on some chips
        drm/amd/display: remove duplicated argument
        drm/amdgpu: correct mca debugfs dump reg list
        drm/amdgpu: correct acclerator check architecutre dump
        drm/amdgpu: add pcs xgmi v6.4.0 ras support
        drm/amdgpu: Change extended-scope MTYPE on GC 9.4.3
        drm/amdgpu: disable smu v13.0.6 mca debug mode by default
        drm/amdgpu: Support multiple error query modes
        drm/amdgpu: refine smu v13.0.6 mca dump driver
        drm/amdgpu: Do not program PF-only regs in hdp_v4_0.c under SRIOV (v2)
        drm/amdgpu: Skip PCTL0_MMHUB_DEEPSLEEP_IB write in jpegv4.0.3 under SRIOV
        drm: amd: Resolve Sphinx unexpected indentation warning
        ...
      c0d12d76
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ac347a06
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
       "Mostly PMU fixes and a reworking of the pseudo-NMI disabling on broken
        MediaTek firmware:
      
         - Move the MediaTek GIC quirk handling from irqchip to core. Before
           the merging window commit 44bd78dd ("irqchip/gic-v3: Disable
           pseudo NMIs on MediaTek devices w/ firmware issues") temporarily
           addressed this issue. Fixed now at a deeper level in the arch code
      
         - Reject events meant for other PMUs in the CoreSight PMU driver,
           otherwise some of the core PMU events would disappear
      
         - Fix the Armv8 PMUv3 driver driver to not truncate 64-bit registers,
           causing some events to be invisible
      
         - Remove duplicate declaration of __arm64_sys##name following the
           patch to avoid prototype warning for syscalls
      
         - Typos in the elf_hwcap documentation"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/syscall: Remove duplicate declaration
        Revert "arm64: smp: avoid NMI IPIs with broken MediaTek FW"
        arm64: Move MediaTek GIC quirk handling from irqchip to core
        arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers
        perf: arm_cspmu: Reject events meant for other PMUs
        Documentation/arm64: Fix typos in elf_hwcaps
      ac347a06
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · e1d809b3
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes for rc1.
      
        The majority of changes are various ASoC driver-specific small fixes
        and usual HD-audio quirks, while there are a couple of core changes: a
        fix in ALSA core procfs code to avoid deadlocks at disconnection and
        an ASoC core fix for DAPM clock widgets"
      
      * tag 'sound-fix-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        OSS: dmasound/paula: Convert to platform remove callback returning void
        ALSA: hda: ASUS UM5302LA: Added quirks for cs35L41/10431A83 on i2c bus
        ALSA: info: Fix potential deadlock at disconnection
        ASoC: nau8540: Add self recovery to improve capture quility
        ALSA: hda/realtek: Add support dual speaker for Dell
        ALSA: hda: Add ASRock X670E Taichi to denylist
        ALSA: hda/realtek: Add quirk for ASUS UX7602ZM
        ASoC: SOF: sof-client: trivial: fix comment typo
        ASoC: dapm: fix clock get name
        ASoC: hdmi-codec: register hpd callback on component probe
        ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages
        ASoC: da7219: Improve system suspend and resume handling
        ASoC: codecs: Modify macro value error
        ASoC: codecs: Modify the wrong judgment of re value
        ASoC: codecs: Modify the maximum value of calib
        ASoC: amd: acp: fix for i2s mode register field update
        ASoC: codecs: aw88399: Fix -Wuninitialized in aw_dev_set_vcalb()
        ASoC: rt712-sdca: fix speaker route missing issue
        ASoC: rockchip: Fix unused rockchip_i2s_tdm_match warning for !CONFIG_OF
        ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings
      e1d809b3
    • Daniel Vetter's avatar
      Merge tag 'amd-drm-next-6.7-2023-11-10' of https://gitlab.freedesktop.org/agd5f/linux into drm-next · 03df0fc0
      Daniel Vetter authored
      amd-drm-next-6.7-2023-11-10:
      
      amdgpu:
      - SR-IOV fixes
      - DMCUB fixes
      - DCN3.5 fixes
      - DP2 fixes
      - SubVP fixes
      - SMU14 fixes
      - SDMA4.x fixes
      - Suspend/resume fixes
      - AGP regression fix
      - UAF fixes for some error cases
      - SMU 13.0.6 fixes
      - Documentation fixes
      - RAS fixes
      - Hotplug fixes
      - Scheduling entity ordering fix
      - GPUVM fixes
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231110190703.4741-1-alexander.deucher@amd.com
      03df0fc0
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.7-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · ae4f52a7
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A couple of fixes that came in during the merge window: one Kconfig
        dependency fix and another fix for a long standing issue where a sync
        transfer races with system suspend"
      
      * tag 'spi-fix-v6.7-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: Fix null dereference on suspend
        spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies
      ae4f52a7
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · b456259e
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Fix broken cache-flush support for Micron eMMCs
         - Revert 'mmc: core: Capture correct oemid-bits for eMMC cards'
      
        MMC host:
         - sdhci_am654: Fix TAP value parsing for legacy speed mode
         - sdhci-pci-gli: Fix support for ASPM mode for GL9755/GL9750
         - vub300: Fix an error path in probe"
      
      * tag 'mmc-v6.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER
        mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER
        Revert "mmc: core: Capture correct oemid-bits for eMMC cards"
        mmc: vub300: fix an error code
        mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A
        mmc: sdhci_am654: fix start loop index for TAP value parsing
      b456259e
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-6.7-rc1-fixes' of... · b077b7ee
      Linus Torvalds authored
      Merge tag 'pwm/for-6.7-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm fixes from Thierry Reding:
       "This contains two very small fixes that I failed to include in the
        main pull request"
      
      * tag 'pwm/for-6.7-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        pwm: Fix double shift bug
        pwm: samsung: Fix a bit test in pwm_samsung_resume()
      b077b7ee
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.7-2023-11-10' of git://git.kernel.dk/linux · b712075e
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "Mostly just a few fixes and cleanups caused by the read multishot
        support.
      
        Outside of that, a stable fix for how a connect retry is done"
      
      * tag 'io_uring-6.7-2023-11-10' of git://git.kernel.dk/linux:
        io_uring: do not clamp read length for multishot read
        io_uring: do not allow multishot read to set addr or len
        io_uring: indicate if io_kbuf_recycle did recycle anything
        io_uring/rw: add separate prep handler for fixed read/write
        io_uring/rw: add separate prep handler for readv/writev
        io_uring/net: ensure socket is marked connected on connect retry
        io_uring/rw: don't attempt to allocate async data if opcode doesn't need it
      b712075e
    • Linus Torvalds's avatar
      Merge tag 'block-6.7-2023-11-10' of git://git.kernel.dk/linux · 4b803784
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request via Keith:
            - nvme keyring config compile fixes (Hannes and Arnd)
            - fabrics keep alive fixes (Hannes)
            - tcp authentication fixes (Mark)
            - io_uring_cmd error handling fix (Anuj)
            - stale firmware attribute fix (Daniel)
            - tcp memory leak (Christophe)
            - crypto library usage simplification (Eric)
      
       - nbd use-after-free fix. May need a followup, but at least it's better
         than what it was before (Li)
      
       - Rate limit write on read-only device warnings (Yu)
      
      * tag 'block-6.7-2023-11-10' of git://git.kernel.dk/linux:
        nvme: keyring: fix conditional compilation
        nvme: common: make keyring and auth separate modules
        blk-core: use pr_warn_ratelimited() in bio_check_ro()
        nbd: fix uaf in nbd_open
        nvme: start keep-alive after admin queue setup
        nvme-loop: always quiesce and cancel commands before destroying admin q
        nvme-tcp: avoid open-coding nvme_tcp_teardown_admin_queue()
        nvme-auth: always set valid seq_num in dhchap reply
        nvme-auth: add flag for bi-directional auth
        nvme-auth: auth success1 msg always includes resp
        nvme: fix error-handling for io_uring nvme-passthrough
        nvme: update firmware version after commit
        nvme-tcp: Fix a memory leak
        nvme-auth: use crypto_shash_tfm_digest()
      4b803784
    • Linus Torvalds's avatar
      Merge tag 'ata-6.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · d035e4eb
      Linus Torvalds authored
      Pull ata fixes from Damien Le Moal:
      
       - Revert a change in ata_pci_shutdown_one() to suspend disks on
         shutdown as this is now done using the manage_shutdown scsi device
         flag (me)
      
       - Change the pata_falcon and pata_gayle drivers to stop using
         module_platform_driver_probe(). This makes these drivers more inline
         with all other drivers (allowing bind/unbind) and suppress a
         compilation warning (Uwe)
      
       - Convert the pata_falcon and pata_gayle drivers to the new
         .remove_new() void-return callback. These 2 drivers are the last ones
         needing this change (Uwe)
      
      * tag 'ata-6.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        ata: pata_gayle: Convert to platform remove callback returning void
        ata: pata_falcon: Convert to platform remove callback returning void
        ata: pata_gayle: Stop using module_platform_driver_probe()
        ata: pata_falcon: Stop using module_platform_driver_probe()
        ata: libata-core: Fix ata_pci_shutdown_one()
      d035e4eb
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.7-2023-11-10' of git://git.infradead.org/users/hch/dma-mapping · 391ce5b9
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
      
       - don't leave pages decrypted for DMA in encrypted memory setups linger
         around on failure (Petr Tesarik)
      
       - fix an out of bounds access in the new dynamic swiotlb code (Petr
         Tesarik)
      
       - fix dma_addressing_limited for systems with weird physical memory
         layouts (Jia He)
      
      * tag 'dma-mapping-6.7-2023-11-10' of git://git.infradead.org/users/hch/dma-mapping:
        swiotlb: fix out-of-bounds TLB allocations with CONFIG_SWIOTLB_DYNAMIC
        dma-mapping: fix dma_addressing_limited() if dma_range_map can't cover all system RAM
        dma-mapping: move dma_addressing_limited() out of line
        swiotlb: do not free decrypted pages if dynamic
      391ce5b9
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20231109' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · ead3b62a
      Linus Torvalds authored
      Pull lsm updates from Paul Moore:
       "We've got two small patches to correct the default return
        value of two LSM hooks: security_vm_enough_memory_mm() and
        security_inode_getsecctx()"
      
      * tag 'lsm-pr-20231109' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
        lsm: fix default return value for inode_getsecctx
        lsm: fix default return value for vm_enough_memory
      ead3b62a
    • Linus Torvalds's avatar
      Merge tag '6.7-rc-smb3-server-part2' of git://git.samba.org/ksmbd · 826c4841
      Linus Torvalds authored
      Pull smb server fixes from Steve French:
      
       - slab out of bounds fix in ACL handling
      
       - fix malformed request oops
      
       - minor doc fix
      
      * tag '6.7-rc-smb3-server-part2' of git://git.samba.org/ksmbd:
        ksmbd: handle malformed smb1 message
        ksmbd: fix kernel-doc comment of ksmbd_vfs_kern_path_locked()
        ksmbd: fix slab out of bounds write in smb_inherit_dacl()
      826c4841
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-6.7-rc1' of https://github.com/ceph/ceph-client · e21165bf
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
      
       - support for idmapped mounts in CephFS (Christian Brauner, Alexander
         Mikhalitsyn).
      
         The series was originally developed by Christian and later picked up
         and brought over the finish line by Alexander, who also contributed
         an enabler on the MDS side (separate owner_{u,g}id fields on the
         wire).
      
         The required exports for mnt_idmap_{get,put}() in VFS have been acked
         by Christian and received no objection from Christoph.
      
       - a churny change in CephFS logging to include cluster and client
         identifiers in log and debug messages (Xiubo Li).
      
         This would help in scenarios with dozens of CephFS mounts on the same
         node which are getting increasingly common, especially in the
         Kubernetes world.
      
      * tag 'ceph-for-6.7-rc1' of https://github.com/ceph/ceph-client:
        ceph: allow idmapped mounts
        ceph: allow idmapped atomic_open inode op
        ceph: allow idmapped set_acl inode op
        ceph: allow idmapped setattr inode op
        ceph: pass idmap to __ceph_setattr
        ceph: allow idmapped permission inode op
        ceph: allow idmapped getattr inode op
        ceph: pass an idmapping to mknod/symlink/mkdir
        ceph: add enable_unsafe_idmap module parameter
        ceph: handle idmapped mounts in create_request_message()
        ceph: stash idmapping in mdsc request
        fs: export mnt_idmap_get/mnt_idmap_put
        libceph, ceph: move mdsmap.h to fs/ceph
        ceph: print cluster fsid and client global_id in all debug logs
        ceph: rename _to_client() to _to_fs_client()
        ceph: pass the mdsc to several helpers
        libceph: add doutc and *_client debug macros support
      e21165bf
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.7-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 56d428ae
      Linus Torvalds authored
      Pull more RISC-V updates from Palmer Dabbelt:
      
       - Support for handling misaligned accesses in S-mode
      
       - Probing for misaligned access support is now properly cached and
         handled in parallel
      
       - PTDUMP now reflects the SW reserved bits, as well as the PBMT and
         NAPOT extensions
      
       - Performance improvements for TLB flushing
      
       - Support for many new relocations in the module loader
      
       - Various bug fixes and cleanups
      
      * tag 'riscv-for-linus-6.7-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (51 commits)
        riscv: Optimize bitops with Zbb extension
        riscv: Rearrange hwcap.h and cpufeature.h
        drivers: perf: Do not broadcast to other cpus when starting a counter
        drivers: perf: Check find_first_bit() return value
        of: property: Add fw_devlink support for msi-parent
        RISC-V: Don't fail in riscv_of_parent_hartid() for disabled HARTs
        riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings
        riscv: Don't use PGD entries for the linear mapping
        RISC-V: Probe misaligned access speed in parallel
        RISC-V: Remove __init on unaligned_emulation_finish()
        RISC-V: Show accurate per-hart isa in /proc/cpuinfo
        RISC-V: Don't rely on positional structure initialization
        riscv: Add tests for riscv module loading
        riscv: Add remaining module relocations
        riscv: Avoid unaligned access when relocating modules
        riscv: split cache ops out of dma-noncoherent.c
        riscv: Improve flush_tlb_kernel_range()
        riscv: Make __flush_tlb_range() loop over pte instead of flushing the whole tlb
        riscv: Improve flush_tlb_range() for hugetlb pages
        riscv: Improve tlb_flush()
        ...
      56d428ae
    • Linus Torvalds's avatar
      Merge tag 'mips_6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 656d88c3
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - removed AR7 platform support
      
       - cleanups and fixes
      
      * tag 'mips_6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: AR7: remove platform
        watchdog: ar7_wdt: remove driver to prepare for platform removal
        vlynq: remove bus driver
        mtd: parsers: ar7: remove support
        serial: 8250: remove AR7 support
        arch: mips: remove ReiserFS from defconfig
        MIPS: lantiq: Remove unnecessary include of <linux/of_irq.h>
        MIPS: lantiq: Fix pcibios_plat_dev_init() "no previous prototype" warning
        MIPS: KVM: Fix a build warning about variable set but not used
        MIPS: Remove dead code in relocate_new_kernel
        mips: dts: ralink: mt7621: rename to GnuBee GB-PC1 and GnuBee GB-PC2
        mips: dts: ralink: mt7621: define each reset as an item
        mips: dts: ingenic: Remove unneeded probe-type properties
        MIPS: loongson32: Remove dma.h and nand.h
      656d88c3
    • Christian König's avatar
      drm/amdgpu: fix error handling in amdgpu_vm_init · 8473bfdc
      Christian König authored
      When clearing the root PD fails we need to properly release it again.
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      8473bfdc
    • Felix Kuehling's avatar
      drm/amdgpu: Fix possible null pointer dereference · 25650307
      Felix Kuehling authored
      mem = bo->tbo.resource may be NULL in amdgpu_vm_bo_update.
      
      Fixes: 18025378 ("drm/ttm: stop allocating dummy resources during BO creation")
      Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      25650307
    • Alex Deucher's avatar
      drm/amdgpu: move UVD and VCE sched entity init after sched init · 037b98a2
      Alex Deucher authored
      We need kernel scheduling entities to deal with handle clean up
      if apps are not cleaned up properly.  With commit 56e44960
      ("drm/sched: Convert the GPU scheduler to variable number of run-queues")
      the scheduler entities have to be created after scheduler init, so
      change the ordering to fix this.
      
      v2: Leave logic in UVD and VCE code
      
      Fixes: 56e44960 ("drm/sched: Convert the GPU scheduler to variable number of run-queues")
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarLuben Tuikov <ltuikov89@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: ltuikov89@gmail.com
      037b98a2