Thread (24 messages) 24 messages, 4 authors, 2021-09-29

Re: [PATCH net-next v1 4/5] net/mlx5: Register separate reload devlink ops for multiport device

From: Leon Romanovsky <leon@kernel.org>
Date: 2021-09-29 14:31:11
Also in: intel-wired-lan, linux-omap, linux-staging, lkml, netdev

On Wed, Sep 29, 2021 at 07:26:31AM -0700, Jakub Kicinski wrote:
On Wed, 29 Sep 2021 17:16:28 +0300 Leon Romanovsky wrote:
quoted
quoted
quoted
@@ -808,6 +812,9 @@ int mlx5_devlink_register(struct devlink *devlink)
 	if (err)
 		goto traps_reg_err;
 
+	if (!mlx5_core_is_mp_slave(dev))
+		devlink_set_ops(devlink, &mlx5_devlink_reload);  
Does this work? Where do you make a copy of the ops? 🤔 You can't modify
the driver-global ops, to state the obvious.  
devlink_ops pointer is not constant at this stage, so why can't I copy
reload_* pointers to the "main" devlink ops?

I wanted to avoid to copy all pointers.
Hm. I must be missing a key piece here. IIUC you want to have different
ops based on some device property. But there is only one

static struct devlink_ops mlx5_devlink_ops;

so how can two devlink instances in the system use that and have
different ops without a copy?
No, I have two:
* Base ops - mlx5_devlink_ops
* Extra reload commands - mlx5_devlink_reload

Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help