Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c013b65a authored by Rasmus Villemoes's avatar Rasmus Villemoes Committed by Wim Van Sebroeck
Browse files

watchdog: introduce watchdog_worker_should_ping helper



This will be useful when the condition becomes slightly more
complicated in the next patch.

Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: default avatarEsben Haabendal <esben@haabendal.dk>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent e7bf0289
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -195,18 +195,23 @@ static int watchdog_ping(struct watchdog_device *wdd)
	return __watchdog_ping(wdd);
}

static bool watchdog_worker_should_ping(struct watchdog_core_data *wd_data)
{
	struct watchdog_device *wdd = wd_data->wdd;

	return wdd && (watchdog_active(wdd) || watchdog_hw_running(wdd));
}

static void watchdog_ping_work(struct work_struct *work)
{
	struct watchdog_core_data *wd_data;
	struct watchdog_device *wdd;

	wd_data = container_of(to_delayed_work(work), struct watchdog_core_data,
			       work);

	mutex_lock(&wd_data->lock);
	wdd = wd_data->wdd;
	if (wdd && (watchdog_active(wdd) || watchdog_hw_running(wdd)))
		__watchdog_ping(wdd);
	if (watchdog_worker_should_ping(wd_data))
		__watchdog_ping(wd_data->wdd);
	mutex_unlock(&wd_data->lock);
}