summaryrefslogtreecommitdiffstats
path: root/include/net/devlink.h
diff options
context:
space:
mode:
authorJiri Pirko <jiri@nvidia.com>2023-01-18 16:21:08 +0100
committerJakub Kicinski <kuba@kernel.org>2023-01-20 04:08:37 +0100
commitdfdfd1305ddecb990566193f2ba8a11bccba4cde (patch)
treee3b65f5f1a722af8d83c4547c41ad4415829f2af /include/net/devlink.h
parentnet/mlx5: Remove MLX5E_LOCKED_FLOW flag (diff)
downloadlinux-dfdfd1305ddecb990566193f2ba8a11bccba4cde.tar.xz
linux-dfdfd1305ddecb990566193f2ba8a11bccba4cde.zip
devlink: protect health reporter operation with instance lock
Similar to other devlink objects, protect the reporters list by devlink instance lock. Alongside add unlocked versions of health reporter create/destroy functions and use them in drivers on call paths where the instance lock is held. Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net/devlink.h')
-rw-r--r--include/net/devlink.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/include/net/devlink.h b/include/net/devlink.h
index d7c9572e5bea..0d64feaef7cb 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -1865,19 +1865,35 @@ int devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name,
const void *value, u32 value_len);
struct devlink_health_reporter *
-devlink_health_reporter_create(struct devlink *devlink,
- const struct devlink_health_reporter_ops *ops,
- u64 graceful_period, void *priv);
+devl_port_health_reporter_create(struct devlink_port *port,
+ const struct devlink_health_reporter_ops *ops,
+ u64 graceful_period, void *priv);
struct devlink_health_reporter *
devlink_port_health_reporter_create(struct devlink_port *port,
const struct devlink_health_reporter_ops *ops,
u64 graceful_period, void *priv);
+struct devlink_health_reporter *
+devl_health_reporter_create(struct devlink *devlink,
+ const struct devlink_health_reporter_ops *ops,
+ u64 graceful_period, void *priv);
+
+struct devlink_health_reporter *
+devlink_health_reporter_create(struct devlink *devlink,
+ const struct devlink_health_reporter_ops *ops,
+ u64 graceful_period, void *priv);
+
+void
+devl_health_reporter_destroy(struct devlink_health_reporter *reporter);
+
void
devlink_health_reporter_destroy(struct devlink_health_reporter *reporter);
void
+devl_port_health_reporter_destroy(struct devlink_health_reporter *reporter);
+
+void
devlink_port_health_reporter_destroy(struct devlink_health_reporter *reporter);
void *