summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorEran Ben Elisha <eranbe@mellanox.com>2019-03-03 10:57:30 +0200
committerDavid S. Miller <davem@davemloft.net>2019-03-04 11:00:43 -0800
commit3167b27a7ded84623f50e4fb4cab846e75c4a210 (patch)
tree27c059516dae5978ff67f9e64f16ffbd6d598abf /include/net
parenta0a21adb6a935c24111ae3a68ed406025753ce98 (diff)
downloadlinux-3167b27a7ded84623f50e4fb4cab846e75c4a210.tar.bz2
devlink: Add support for direct reporter health state update
It is possible that a reporter state will be updated due to a recover flow which is not triggered by a devlink health related operation, but as a side effect of some other operation in the system. Expose devlink health API for a direct update of a reporter status. Move devlink_health_reporter_state enum definition to devlink.h so it could be used from drivers as a parameter of devlink_health_reporter_state_update. In addition, add trace_devlink_health_reporter_state_update to provide user notification for reporter state change. Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/devlink.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/net/devlink.h b/include/net/devlink.h
index 7f5a0bdca228..63de99e09f04 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -447,6 +447,11 @@ typedef void devlink_snapshot_data_dest_t(const void *data);
struct devlink_fmsg;
struct devlink_health_reporter;
+enum devlink_health_reporter_state {
+ DEVLINK_HEALTH_REPORTER_STATE_HEALTHY,
+ DEVLINK_HEALTH_REPORTER_STATE_ERROR,
+};
+
/**
* struct devlink_health_reporter_ops - Reporter operations
* @name: reporter name
@@ -715,6 +720,9 @@ void *
devlink_health_reporter_priv(struct devlink_health_reporter *reporter);
int devlink_health_report(struct devlink_health_reporter *reporter,
const char *msg, void *priv_ctx);
+void
+devlink_health_reporter_state_update(struct devlink_health_reporter *reporter,
+ enum devlink_health_reporter_state state);
void devlink_compat_running_version(struct net_device *dev,
char *buf, size_t len);
@@ -1205,6 +1213,12 @@ devlink_health_report(struct devlink_health_reporter *reporter,
}
static inline void
+devlink_health_reporter_state_update(struct devlink_health_reporter *reporter,
+ enum devlink_health_reporter_state state)
+{
+}
+
+static inline void
devlink_compat_running_version(struct net_device *dev, char *buf, size_t len)
{
}