- Bump the timeout to 30 seconds - 9600 baud is slow. - Handle jiffy wraps: change the logic so that we only skip the lockbust if the current time is within 30 seconds of the previous lockbusting attempt. --- 25-akpm/kernel/printk.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff -puN kernel/printk.c~mangled-printk-oops-output-fix-tweaks kernel/printk.c --- 25/kernel/printk.c~mangled-printk-oops-output-fix-tweaks Thu May 20 16:01:53 2004 +++ 25-akpm/kernel/printk.c Thu May 20 16:10:32 2004 @@ -55,9 +55,6 @@ EXPORT_SYMBOL(console_printk); int oops_in_progress; -/* zap spinlocks only once: */ -unsigned long oops_timestamp; - /* * console_sem protects the console_drivers list, and also * provides serialisation for access to the entire console @@ -479,10 +476,14 @@ static void emit_log_char(char c) * every 10 seconds, to leave time for slow consoles to print a * full oops. */ -static inline void zap_locks(void) +static void zap_locks(void) { - if (!time_after(jiffies, oops_timestamp + 10*HZ)) + static unsigned long oops_timestamp; + + if (time_after_eq(jiffies, oops_timestamp) && + !time_after(jiffies, oops_timestamp + 30*HZ)) return; + oops_timestamp = jiffies; /* If a crash is occurring, make sure we can't deadlock */ _