diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c index 41f12f5a4fcd..be4661b6c959 100644 --- a/arch/arm64/kernel/entry-common.c +++ b/arch/arm64/kernel/entry-common.c @@ -29,6 +29,7 @@ #include #include +#include /* * Handle IRQ/context state management when entering from kernel mode. @@ -584,6 +585,7 @@ asmlinkage void noinstr el1h_64_irq_handler(struct pt_regs *regs) asmlinkage void noinstr el1h_64_fiq_handler(struct pt_regs *regs) { + trace_android_rvh_fiq_dump(regs); el1_interrupt(regs, handle_arch_fiq); } @@ -841,6 +843,7 @@ static void noinstr __el0_fiq_handler_common(struct pt_regs *regs) asmlinkage void noinstr el0t_64_fiq_handler(struct pt_regs *regs) { + trace_android_rvh_fiq_dump(regs); __el0_fiq_handler_common(regs); } diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index aaad721bb82a..581063585792 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -617,3 +617,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_remove_migration_pte_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_split_huge_page_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_try_split_folio_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_scmi_limit_notify_cb); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_fiq_dump); diff --git a/include/trace/hooks/gic.h b/include/trace/hooks/gic.h index daa11cd2f598..da2f3e0020bb 100644 --- a/include/trace/hooks/gic.h +++ b/include/trace/hooks/gic.h @@ -15,6 +15,10 @@ DECLARE_HOOK(android_vh_gic_set_affinity, bool force, u8 *gic_cpu_map, void __iomem *reg), TP_ARGS(d, mask_val, force, gic_cpu_map, reg)); +DECLARE_RESTRICTED_HOOK(android_rvh_fiq_dump, + TP_PROTO(struct pt_regs *regs), + TP_ARGS(regs), 1); + #endif /* _TRACE_HOOK_GIC_H */ /* This part must be outside protection */ #include