From 8df1379d85246ee51fe22d019673275b24914506 Mon Sep 17 00:00:00 2001 From: Dezhi Huang Date: Sat, 13 Apr 2024 19:10:15 +0800 Subject: [PATCH] ANDROID: vendor_hooks: add hook to record reboot reason Add hook to record the reason for calling hw_protection_shutdown Bug: 334006616 Change-Id: I9dce8056693c96f1d5f1fab9af02a2e68ed6ab91 Signed-off-by: Dezhi Huang (cherry picked from commit 70e95a10a553c0c530694b8939d25fbb984647d0) --- drivers/android/vendor_hooks.c | 2 ++ include/trace/hooks/reboot.h | 18 ++++++++++++++++++ kernel/reboot.c | 4 ++++ 3 files changed, 24 insertions(+) create mode 100644 include/trace/hooks/reboot.h 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