On Wed, 8 Jan 2025 16:36:26 +0800 Xiao Liang wrote:
On Wed, Jan 8, 2025 at 4:38 AM Jakub Kicinski
<kuba(a)kernel.org> wrote:
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?
Sure. I thought you were suggesting packing them all
in review of v3...
Sorry about that, I wasn't very clear :(
What I had in mind was similar to how we define ethtool ops,
(especially the more recent ones which have extack)
for example:
int (*set_mm)(struct net_device *dev, struct ethtool_mm_cfg *cfg,
struct netlink_ext_ack *extack);