On Wed, Apr 23, 2025 at 5:11 AM Donald Hunter donald.hunter@gmail.com wrote:
Mina Almasry almasrymina@google.com writes:
From: Stanislav Fomichev sdf@fomichev.me
Add bind-tx netlink call to attach dmabuf for TX; queue is not required, only ifindex and dmabuf fd for attachment.
Signed-off-by: Stanislav Fomichev sdf@fomichev.me Signed-off-by: Mina Almasry almasrymina@google.com
v3:
- Fix ynl-regen.sh error (Simon).
Documentation/netlink/specs/netdev.yaml | 12 ++++++++++++ include/uapi/linux/netdev.h | 1 + net/core/netdev-genl-gen.c | 13 +++++++++++++ net/core/netdev-genl-gen.h | 1 + net/core/netdev-genl.c | 6 ++++++ tools/include/uapi/linux/netdev.h | 1 + 6 files changed, 34 insertions(+)
diff --git a/Documentation/netlink/specs/netdev.yaml b/Documentation/netlink/specs/netdev.yaml index f5e0750ab71db..c0ef6d0d77865 100644 --- a/Documentation/netlink/specs/netdev.yaml +++ b/Documentation/netlink/specs/netdev.yaml @@ -743,6 +743,18 @@ operations: - defer-hard-irqs - gro-flush-timeout - irq-suspend-timeout
name: bind-tx
doc: Bind dmabuf to netdev for TX
nit: maybe add "for RX" to the bind-rx doc.
Thanks, will pull this with the next iteration.
attribute-set: dmabuf
The bind-rx op has "flags: [ admin-perm ]", should bind-tx also?
The omission of admin-perm for tx is intentional.
Binding a dmabuf to an rx queue should and is a privileged operation, because basically the application doing the binding is taking ownership of this rx queue. For TX, no such queue ownership is being taken. The TX binding just gives the netdevice access to the dmabuf dma-addresses so the netdevice can send from there. It's very similar to a normal dma-map with normal memory. There is no need for privilege checks.