Adding Kuniyuki. On 3/8/25 10:40 PM, Mina Almasry wrote: > @@ -931,10 +932,67 @@ int netdev_nl_bind_rx_doit(struct sk_buff *skb, struct genl_info *info) > return err; > } > > -/* stub */ > int netdev_nl_bind_tx_doit(struct sk_buff *skb, struct genl_info *info) > { > - return 0; > + struct net_devmem_dmabuf_binding *binding; > + struct list_head *sock_binding_list; > + struct net_device *netdev; > + u32 ifindex, dmabuf_fd; > + struct sk_buff *rsp; > + int err = 0; > + void *hdr; > + > + if (GENL_REQ_ATTR_CHECK(info, NETDEV_A_DEV_IFINDEX) || > + GENL_REQ_ATTR_CHECK(info, NETDEV_A_DMABUF_FD)) > + return -EINVAL; > + > + ifindex = nla_get_u32(info->attrs[NETDEV_A_DEV_IFINDEX]); > + dmabuf_fd = nla_get_u32(info->attrs[NETDEV_A_DMABUF_FD]); > + > + sock_binding_list = genl_sk_priv_get(&netdev_nl_family, > + NETLINK_CB(skb).sk); > + if (IS_ERR(sock_binding_list)) > + return PTR_ERR(sock_binding_list); > + > + rsp = genlmsg_new(GENLMSG_DEFAULT_SIZE, GFP_KERNEL); > + if (!rsp) > + return -ENOMEM; > + > + hdr = genlmsg_iput(rsp, info); > + if (!hdr) { > + err = -EMSGSIZE; > + goto err_genlmsg_free; > + } > + > + rtnl_lock(); The above could possibly be a rtnl_net_lock(), right? (not strictily related to this series) The same for the existing rtnl_lock() call in netdev-genl.c, right? /P