Go to file
Pavel Begunkov f12ecf5e1c io_uring/zcrx: fix late dma unmap for a dead dev
There is a problem with page pools not dma-unmapping immediately when
the device is going down, and delaying it until the page pool is
destroyed, which is not allowed (see links). That just got fixed for
normal page pools, and we need to address memory providers as well.

Unmap pages in the memory provider uninstall callback, and protect it
with a new lock. There is also a gap between when a dma mapping is
created and the mp is installed, so if the device is killed in between,
io_uring would be holding on to dma mappings to a dead device with no
one to call ->uninstall. Move it to page pool init and rely on
->is_mapped to make sure it's only done once.

Link: https://lore.kernel.org/lkml/8067f204-1380-4d37-8ffd-007fc6f26738@kernel.org/T/
Link: https://lore.kernel.org/all/20250409-page-pool-track-dma-v9-0-6a9ef2e0cba8@redhat.com/
Fixes: 34a3e60821 ("io_uring/zcrx: implement zerocopy receive pp memory provider")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/ef9b7db249b14f6e0b570a1bb77ff177389f881c.1744965853.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2025-04-18 06:12:10 -06:00
Documentation Persistent buffer cleanups and simplifications for v6.15: 2025-04-03 16:09:29 -07:00
LICENSES
arch fixes for bugs caught as part of tree-in-dcache work 2025-04-03 21:12:48 -07:00
block block: don't grab elevator lock during queue initialization 2025-04-03 08:32:03 -06:00
certs
crypto This push fixes reverts the multibuffer hash testing as it is buggy. 2025-04-02 09:14:59 -07:00
drivers fixes for bugs caught as part of tree-in-dcache work 2025-04-03 21:12:48 -07:00
fs 4 ksmbd SMB3 server fixes, all also for stable 2025-04-03 16:18:06 -07:00
include io_uring/zcrx: return ifq id to the user 2025-04-15 07:37:49 -06:00
init ARM and clkdev updates for 6.15-rc1 2025-04-03 12:21:44 -07:00
io_uring io_uring/zcrx: fix late dma unmap for a dead dev 2025-04-18 06:12:10 -06:00
ipc
kernel Persistent buffer cleanups and simplifications for v6.15: 2025-04-03 16:09:29 -07:00
lib One bugfix and a couple of small late-arriving updates. 2025-04-03 11:16:57 -07:00
mm - The 2 patch series "mm: fixes for fallouts from mem_init() cleanup" 2025-04-03 11:10:00 -07:00
net 9p update for 6.15-rc1 2025-04-03 15:35:46 -07:00
rust ARM and clkdev updates for 6.15-rc1 2025-04-03 12:21:44 -07:00
samples tracing fixes for 6.15 2025-04-03 09:52:44 -07:00
scripts ARM and clkdev updates for 6.15-rc1 2025-04-03 12:21:44 -07:00
security mseal sysmap: kernel config and header change 2025-04-01 15:17:14 -07:00
sound These are objtool fixes and updates by Josh Poimboeuf, centered 2025-04-02 10:30:10 -07:00
tools io_uring-6.15-20250403 2025-04-03 15:48:58 -07:00
usr
virt
.clang-format
.clippy.toml
.cocciconfig
.editorconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap mailmap: add an entry for Nicolas Schier 2025-04-01 15:20:45 -07:00
.rustfmt.toml
COPYING
CREDITS vfs-6.15-rc1.fixes 2025-04-02 16:05:21 -07:00
Kbuild
Kconfig
MAINTAINERS - The 2 patch series "mm: fixes for fallouts from mem_init() cleanup" 2025-04-03 11:10:00 -07:00
Makefile
README

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the reStructuredText markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.