devlink: Implicitly set auto recover flag when registering health reporter
When health reporter is registered to devlink, devlink will implicitly set auto recover if and only if the reporter has a recover method. No reason to explicitly get the auto recover flag from the driver. Remove this flag from all drivers that called devlink_health_reporter_create. All existing health reporters set auto recovery to true if they have a recover method. Yet, administrator can unset auto recover via netlink command as prior to this patch. Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
c7f0d4c898
commit
ba7d16c779
@@ -5124,14 +5124,12 @@ devlink_health_reporter_find_by_name(struct devlink *devlink,
|
||||
* @devlink: devlink
|
||||
* @ops: ops
|
||||
* @graceful_period: to avoid recovery loops, in msecs
|
||||
* @auto_recover: auto recover when error occurs
|
||||
* @priv: priv
|
||||
*/
|
||||
struct devlink_health_reporter *
|
||||
devlink_health_reporter_create(struct devlink *devlink,
|
||||
const struct devlink_health_reporter_ops *ops,
|
||||
u64 graceful_period, bool auto_recover,
|
||||
void *priv)
|
||||
u64 graceful_period, void *priv)
|
||||
{
|
||||
struct devlink_health_reporter *reporter;
|
||||
|
||||
@@ -5141,8 +5139,7 @@ devlink_health_reporter_create(struct devlink *devlink,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (WARN_ON(auto_recover && !ops->recover) ||
|
||||
WARN_ON(graceful_period && !ops->recover)) {
|
||||
if (WARN_ON(graceful_period && !ops->recover)) {
|
||||
reporter = ERR_PTR(-EINVAL);
|
||||
goto unlock;
|
||||
}
|
||||
@@ -5157,7 +5154,7 @@ devlink_health_reporter_create(struct devlink *devlink,
|
||||
reporter->ops = ops;
|
||||
reporter->devlink = devlink;
|
||||
reporter->graceful_period = graceful_period;
|
||||
reporter->auto_recover = auto_recover;
|
||||
reporter->auto_recover = !!ops->recover;
|
||||
mutex_init(&reporter->dump_lock);
|
||||
refcount_set(&reporter->refcount, 1);
|
||||
list_add_tail(&reporter->list, &devlink->reporter_list);
|
||||
|
Reference in New Issue
Block a user