static void watchdog_ping_work(struct kthread_work *work) { struct watchdog_core_data *wd_data; wd_data = container_of(work, struct watchdog_core_data, work); mutex_lock(&wd_data->lock); if (watchdog_worker_should_ping(wd_data)) __watchdog_ping(wd_data->wdd); mutex_unlock(&wd_data->lock); }
static int watchdog_ping(struct watchdog_device *wdd) { struct watchdog_core_data *wd_data = wdd->wd_data; if (!watchdog_active(wdd) && !watchdog_hw_running(wdd)) return 0; set_bit(_WDOG_KEEPALIVE, &wd_data->status); wd_data->last_keepalive = jiffies; return __watchdog_ping(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); mutex_unlock(&wd_data->lock); }