--- zzzz-none-000/linux-2.6.32.61/kernel/panic.c 2013-06-10 09:43:48.000000000 +0000 +++ virian-300e-630/linux-2.6.32.61/kernel/panic.c 2014-08-29 14:06:29.000000000 +0000 @@ -22,14 +22,23 @@ #include #include #include +#include +#include -int panic_on_oops; +#if defined(CONFIG_AVM_WATCHDOG) +#include +#endif + +#ifdef CONFIG_TFFS_PANIC_LOG +#include +#endif /*--- #ifdef CONFIG_TFFS_PANIC_LOG ---*/ +int panic_on_oops = 1; static unsigned long tainted_mask; static int pause_on_oops; static int pause_on_oops_flag; static DEFINE_SPINLOCK(pause_on_oops_lock); -int panic_timeout; +int panic_timeout = 5; ATOMIC_NOTIFIER_HEAD(panic_notifier_list); @@ -58,6 +67,12 @@ va_list args; long i; +#if defined(CONFIG_AVM_WATCHDOG) + AVM_WATCHDOG_emergency_retrigger(); +#if defined(CONFIG_VR9) || defined(CONFIG_AR10) + *(volatile unsigned int *)(0xbf101000 + 0xF4) = (1<<4); /*--- disable WATCHDOG-preWarning ---*/ +#endif /*--- #if defined(CONFIG_VR9) ---*/ +#endif /* * It's possible to come here directly from a panic-assertion and * not have preempt disabled. Some functions called from here want @@ -66,6 +81,9 @@ preempt_disable(); bust_spinlocks(1); + console_verbose(); + restore_printk(); + dump_stack(); va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); @@ -88,6 +106,9 @@ */ smp_send_stop(); +#ifdef CONFIG_TFFS_PANIC_LOG + tffs_panic_log_printkbuf(); +#endif /*--- #ifdef CONFIG_TFFS_PANIC_LOG ---*/ atomic_notifier_call_chain(&panic_notifier_list, 0, buf); bust_spinlocks(0);