diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index c711f2df606e..1e6ce6c34b48 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -130,6 +131,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_set_balance_anon_file_reclaim); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_show_max_freq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_slab_alloc_node); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_slab_free); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_hw_protection_shutdown); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_delete); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_replace); diff --git a/include/trace/hooks/reboot.h b/include/trace/hooks/reboot.h new file mode 100644 index 000000000000..e9c7d688cbc8 --- /dev/null +++ b/include/trace/hooks/reboot.h @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM reboot + +#define TRACE_INCLUDE_PATH trace/hooks + +#if !defined(_TRACE_HOOK_REBOOT_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_HOOK_REBOOT_H + +#include + +DECLARE_RESTRICTED_HOOK(android_rvh_hw_protection_shutdown, + TP_PROTO(const char *reason), + TP_ARGS(reason), 1); + +#endif /* _TRACE_HOOK_REBOOT_H */ +/* This part must be outside protection */ +#include diff --git a/kernel/reboot.c b/kernel/reboot.c index aa8f620b557f..bcc98b547431 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -19,6 +19,8 @@ #include #include +#include + /* * this indicates whether you can reboot with ctrl-alt-del: the default is yes */ @@ -998,6 +1000,8 @@ void __hw_protection_shutdown(const char *reason, int ms_until_forced, bool shut if (!atomic_dec_and_test(&allow_proceed)) return; + trace_android_rvh_hw_protection_shutdown(reason); + /* * Queue a backup emergency shutdown in the event of * orderly_poweroff failure