1 | // SPDX-License-Identifier: GPL-2.0-or-later |
---|---|
2 | /* |
3 | * Copyright (C) 2015-2016 Mentor Graphics |
4 | */ |
5 | |
6 | #include <linux/module.h> |
7 | #include <linux/printk.h> |
8 | #include <linux/watchdog.h> |
9 | |
10 | #include "watchdog_pretimeout.h" |
11 | |
12 | /** |
13 | * pretimeout_noop - No operation on watchdog pretimeout event |
14 | * @wdd - watchdog_device |
15 | * |
16 | * This function prints a message about pretimeout to kernel log. |
17 | */ |
18 | static void pretimeout_noop(struct watchdog_device *wdd) |
19 | { |
20 | pr_alert("watchdog%d: pretimeout event\n", wdd->id); |
21 | } |
22 | |
23 | static struct watchdog_governor watchdog_gov_noop = { |
24 | .name = "noop", |
25 | .pretimeout = pretimeout_noop, |
26 | }; |
27 | |
28 | static int __init watchdog_gov_noop_register(void) |
29 | { |
30 | return watchdog_register_governor(gov: &watchdog_gov_noop); |
31 | } |
32 | |
33 | static void __exit watchdog_gov_noop_unregister(void) |
34 | { |
35 | watchdog_unregister_governor(gov: &watchdog_gov_noop); |
36 | } |
37 | module_init(watchdog_gov_noop_register); |
38 | module_exit(watchdog_gov_noop_unregister); |
39 | |
40 | MODULE_AUTHOR("Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>"); |
41 | MODULE_DESCRIPTION("Panic watchdog pretimeout governor"); |
42 | MODULE_LICENSE("GPL"); |
43 |