// SPDX-License-Identifier: GPL-2.0 /* * Copyright 2026 Google LLC */ #include #include #include #include #include "watchdog_pretimeout.h" /** * pretimeout_dump - Dump on watchdog pretimeout event * @wdd: watchdog_device * * Dump all cpu backtrace on pretimeout event. */ static void pretimeout_dump(struct watchdog_device *wdd) { pr_alert("watchdog%d: pretimeout event\n", wdd->id); if (!trigger_all_cpu_backtrace()) pr_alert("trigger_all_cpu_backtrace() isn't available\n"); } static struct watchdog_governor watchdog_gov_dump = { .name = "dump", .pretimeout = pretimeout_dump, }; static int __init watchdog_gov_dump_register(void) { return watchdog_register_governor(&watchdog_gov_dump); } static void __exit watchdog_gov_dump_unregister(void) { watchdog_unregister_governor(&watchdog_gov_dump); } module_init(watchdog_gov_dump_register); module_exit(watchdog_gov_dump_unregister); MODULE_AUTHOR("Tzung-Bi Shih "); MODULE_DESCRIPTION("Dump watchdog pretimeout governor"); MODULE_LICENSE("GPL");