--- zzzz-none-000/linux-2.6.28.10/kernel/panic.c 2009-05-02 18:54:43.000000000 +0000 +++ fusiv-7390-686/linux-2.6.28.10/kernel/panic.c 2014-08-29 09:43:49.000000000 +0000 @@ -21,14 +21,23 @@ #include #include #include +#include +#include +#if defined(CONFIG_AVM_WATCHDOG) +#include +#endif + +#ifdef CONFIG_TFFS_PANIC_LOG +#include +#endif /*--- #ifdef CONFIG_TFFS_PANIC_LOG ---*/ int panic_on_oops; 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); @@ -61,6 +70,10 @@ unsigned long caller = (unsigned long) __builtin_return_address(0); #endif +#if defined(CONFIG_AVM_WATCHDOG) + AVM_WATCHDOG_emergency_retrigger(); +#endif + /* * It's possible to come here directly from a panic-assertion and not * have preempt disabled. Some functions called from here want @@ -69,6 +82,7 @@ preempt_disable(); bust_spinlocks(1); + dump_stack(); va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); @@ -91,6 +105,9 @@ smp_send_stop(); #endif +#ifdef CONFIG_TFFS_PANIC_LOG + tffs_panic_log_printkbuf(); +#endif /*--- #ifdef CONFIG_TFFS_PANIC_LOG ---*/ atomic_notifier_call_chain(&panic_notifier_list, 0, buf); if (!panic_blink)