summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Fomichev <sdf.kernel@gmail.com>2026-10-05 13:18:22 -0700
committerJakub Kicinski <kuba@kernel.org>2026-10-06 18:51:22 -0700
commit7d3e5984d0fc10982812e893cee9ac44f761b2b3 (patch)
tree3e797fc35dff52f50b9c738af227c24942b8fbeb
parent8e37d7bec7968f4b63b47e5b478c3d5b98f02793 (diff)
net: devmem: remove net_iov_area base_virtual
Since commit 083e64a3af77 ("net: devmem: replace gen_pool with freelist"), a binding has a single net_iov_area covering the whole dma-buf, and base_virtual is always 0. Its only reader is net_iov_virtual_addr(), where it adds nothing. io_uring zcrx never uses it. Drop the field and the store, and compute the dma-buf offset from the net_iov index alone. No functional change. From review feedback on: https://lore.kernel.org/netdev/asPUZ8DPllHd6Yu9@devvm7509.cco0.facebook.com/ Signed-off-by: Stanislav Fomichev <sdf@fomichev.me> Acked-by: Mina Almasry <almasrymina@google.com> Link: https://patch.msgid.link/20261005201822.3060658-1-sdf@fomichev.me Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--include/net/netmem.h3
-rw-r--r--net/core/devmem.c1
-rw-r--r--net/core/devmem.h3
3 files changed, 1 insertions, 6 deletions
diff --git a/include/net/netmem.h b/include/net/netmem.h
index cc97611632dc..0cc8572f62ca 100644
--- a/include/net/netmem.h
+++ b/include/net/netmem.h
@@ -102,9 +102,6 @@ struct net_iov_area {
/* Array of net_iovs for this area. */
struct net_iov *niovs;
size_t num_niovs;
-
- /* Offset into the dma-buf where this chunk starts. */
- unsigned long base_virtual;
};
static inline struct net_iov_area *net_iov_owner(const struct net_iov *niov)
diff --git a/net/core/devmem.c b/net/core/devmem.c
index 71c83730d73d..07c62e2e3088 100644
--- a/net/core/devmem.c
+++ b/net/core/devmem.c
@@ -252,7 +252,6 @@ net_devmem_bind_dmabuf(struct net_device *dev, void *vdev,
goto err_unmap;
}
- binding->area.base_virtual = 0;
binding->area.num_niovs = dmabuf->size >> niov_shift;
if (direction == DMA_TO_DEVICE) {
binding->tx_vec = kvmalloc_objs(struct net_iov *,
diff --git a/net/core/devmem.h b/net/core/devmem.h
index 28d6fa7bcb57..1cec10f0257c 100644
--- a/net/core/devmem.h
+++ b/net/core/devmem.h
@@ -112,8 +112,7 @@ static inline unsigned long net_iov_virtual_addr(const struct net_iov *niov)
struct net_devmem_dmabuf_binding *binding =
net_devmem_iov_binding(niov);
- return net_iov_owner(niov)->base_virtual +
- ((unsigned long)net_iov_idx(niov) << binding->niov_shift);
+ return (unsigned long)net_iov_idx(niov) << binding->niov_shift;
}
static inline bool