diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/misc/mediatek/aee/ipanic/ipanic_rom.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/misc/mediatek/aee/ipanic/ipanic_rom.c b/drivers/misc/mediatek/aee/ipanic/ipanic_rom.c index 4077ecfde..d95b3c1e5 100644 --- a/drivers/misc/mediatek/aee/ipanic/ipanic_rom.c +++ b/drivers/misc/mediatek/aee/ipanic/ipanic_rom.c @@ -30,6 +30,12 @@ int __weak ipanic_atflog_buffer(void *data, unsigned char *buffer, size_t sz_buf return 0; } +int __weak has_mt_dump_support(void) +{ + pr_notice("%s: no mt_dump support!\n", __func__); + return 0; +} + #if 1 void ipanic_block_scramble(u8 *buf, int buflen) { @@ -453,6 +459,8 @@ int ipanic(struct notifier_block *this, unsigned long event, void *ptr) int dt; int errno; struct ipanic_header *ipanic_hdr; + + memset(&dumper, 0x0, sizeof(struct kmsg_dumper)); aee_rr_rec_fiq_step(AEE_FIQ_STEP_KE_IPANIC_START); aee_rr_rec_exp_type(2); bust_spinlocks(1); @@ -613,6 +621,9 @@ static int ipanic_die(struct notifier_block *self, unsigned long cmd, void *ptr) /* No return if mrdump is enable */ __mrdump_create_oops_dump(AEE_REBOOT_MODE_KERNEL_OOPS, dargs->regs, "Kernel Oops"); + if (!has_mt_dump_support()) + emergency_restart(); + smp_send_stop(); ipanic_mrdump_mini(AEE_REBOOT_MODE_KERNEL_PANIC, "kernel Oops"); |
