ANDROID: arm64: add vendor hooks for bti and pauth fault
Add hooks to gather data of unusual aborts and summarize it with other information. Bug: 203187389 Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com> Change-Id: I37b3047e72f64dc210d3d3bffe5ee207daeba8d6
This commit is contained in:
parent
129e04dc19
commit
06d074249f
@ -414,6 +414,7 @@ NOKPROBE_SYMBOL(do_undefinstr);
|
||||
|
||||
void do_bti(struct pt_regs *regs)
|
||||
{
|
||||
trace_android_rvh_do_bti(regs, user_mode(regs));
|
||||
BUG_ON(!user_mode(regs));
|
||||
force_signal_inject(SIGILL, ILL_ILLOPC, regs->pc, 0);
|
||||
}
|
||||
@ -425,6 +426,7 @@ void do_ptrauth_fault(struct pt_regs *regs, unsigned int esr)
|
||||
* Unexpected FPAC exception or pointer authentication failure in
|
||||
* the kernel: kill the task before it does any more harm.
|
||||
*/
|
||||
trace_android_rvh_do_ptrauth_fault(regs, esr, user_mode(regs));
|
||||
BUG_ON(!user_mode(regs));
|
||||
force_signal_inject(SIGILL, ILL_ILLOPN, regs->pc, esr);
|
||||
}
|
||||
|
@ -243,6 +243,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_alter_mutex_list_add);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_unlock_slowpath);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake_finish);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_undefinstr);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_bti);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_ptrauth_fault);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_bad_mode);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_arm64_serror_panic);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_selinux_avc_insert);
|
||||
|
@ -17,6 +17,16 @@ DECLARE_RESTRICTED_HOOK(android_rvh_do_undefinstr,
|
||||
TP_ARGS(regs, user),
|
||||
TP_CONDITION(!user));
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_do_bti,
|
||||
TP_PROTO(struct pt_regs *regs, bool user),
|
||||
TP_ARGS(regs, user),
|
||||
TP_CONDITION(!user));
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_do_ptrauth_fault,
|
||||
TP_PROTO(struct pt_regs *regs, unsigned int esr, bool user),
|
||||
TP_ARGS(regs, esr, user),
|
||||
TP_CONDITION(!user));
|
||||
|
||||
DECLARE_RESTRICTED_HOOK(android_rvh_bad_mode,
|
||||
TP_PROTO(struct pt_regs *regs, unsigned int esr, int reason),
|
||||
TP_ARGS(regs, reason, esr), 1);
|
||||
|
Loading…
Reference in New Issue
Block a user