On 5/11/26 13:36, Jiri Pirko wrote:
Fri, May 08, 2026 at 02:41:54PM +0200, [email protected] wrote:
Add .shd_init() and .shd_fini() ops, that will be called for the first
devlink_shd_get() (to initialize driver' priv data) and on the last
devlink_shd_put() (to allow for the cleanup). Both ops are optional.
.shd_init() could return an error, which will stop creation of shd
instance. The initializer also gets an additional, optional param,
that driver could use for any needs.
If any of the callbacks will need to get devlink instance, it could
be accessed by shd_priv_to_devlink().
Both callbacks are called with devl_lock held and devlink registered.
Next commit will make use of the callbacks, another one will make use also
of the non-null additional param (outside of this series).
Reviewed-by: Aleksandr Loktionov <[email protected]>
Signed-off-by: Przemek Kitszel <[email protected]>
---
(v0) first discussed at:
https://lore.kernel.org/netdev/[email protected]
v1: remove redundant added blank line (Jiri)
---
include/net/devlink.h | 26 +++++++++++++
.../ethernet/mellanox/mlx5/core/sh_devlink.c | 2 +-
net/devlink/sh_dev.c | 38 ++++++++++++++++++-
3 files changed, 63 insertions(+), 3 deletions(-)
diff --git a/include/net/devlink.h b/include/net/devlink.h
index bcd31de1f890..5d3a1337bfa1 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -1586,6 +1586,30 @@ struct devlink_ops {
struct devlink_rate *parent,
void *priv_child, void *priv_parent,
struct netlink_ext_ack *extack);
+
+ /**
+ * shd_init: Shared devlink instance initializer
+ * @priv: shd_devlink' priv
+ * @init_param: additional param to pass to driver callback
The "param" word still pokes me to the eye. Could we figure out some
different name? "init_ctx" perhaps?
I like init_ctx,
will wait a bit before v2
[...]