On Sat, 4 Jan 2025 20:57:23 +0800 Xiao Liang wrote: > -static int amt_newlink(struct net *net, struct net_device *dev, > - struct nlattr *tb[], struct nlattr *data[], > - struct netlink_ext_ack *extack) > +static int amt_newlink(struct rtnl_newlink_params *params) > { > - struct amt_dev *amt = netdev_priv(dev); > + struct netlink_ext_ack *extack = params->extack; > + struct net_device *dev = params->dev; > + struct nlattr **data = params->data; > + struct nlattr **tb = params->tb; > + struct net *net = params->net; > + struct amt_dev *amt; IMHO you packed a little too much into the struct. Could you take the dev and the extack back out?