Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56ebfff5 authored by Will McVicker's avatar Will McVicker Committed by Will Mcvicker
Browse files

ANDROID: GKI: panic: add vendor callback function in panic()



Each vendor might want to implement some debug code when the kernel
panics. So, add a vendor_panic_cb callback for vendors to implement.

Bug: 149258398
Test: compile
Change-Id: I7a374b0089f72c2511db6fe3b8cdd18f41a1eb6c
Signed-off-by: default avatarSaravana Kannan <saravanak@google.com>
(cherry picked from commit 911d9c70c2c50b0383ed0b652bb84ca8832e4a2b)
Signed-off-by: default avatarWill McVicker <willmcvicker@google.com>
[willmcvicker: only pulled in the ABI diffs]
parent 7de8e1e4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -323,6 +323,7 @@ static inline void might_fault(void) { }
#endif

extern struct atomic_notifier_head panic_notifier_list;
extern void (*vendor_panic_cb)(u64 sp);
extern long (*panic_blink)(int state);
__printf(1, 2)
void panic(const char *fmt, ...) __noreturn __cold;
+5 −1
Original line number Diff line number Diff line
@@ -47,9 +47,11 @@ int panic_timeout = CONFIG_PANIC_TIMEOUT;
EXPORT_SYMBOL_GPL(panic_timeout);

ATOMIC_NOTIFIER_HEAD(panic_notifier_list);

EXPORT_SYMBOL(panic_notifier_list);

void (*vendor_panic_cb)(u64 sp);
EXPORT_SYMBOL_GPL(vendor_panic_cb);

static long no_blink(int state)
{
	return 0;
@@ -177,6 +179,8 @@ void panic(const char *fmt, ...)
	va_start(args, fmt);
	vsnprintf(buf, sizeof(buf), fmt, args);
	va_end(args);
	if (vendor_panic_cb)
		vendor_panic_cb(0);
	pr_emerg("Kernel panic - not syncing: %s\n", buf);
#ifdef CONFIG_DEBUG_BUGVERBOSE
	/*