On Tue, 2007-07-03 at 12:47 +0300, Jarkko Lavinen wrote: > On Tue, Jun 19, 2007 at 11:00:54AM +0100, Richard Purdie wrote: > > Its not a case of formatting the whole partition. The whole point of > > this code is the following use case: > > > > 1. Device crashes > > 2. Device reboots > > 3. mtdoops partition has a log of why it crashed > > The oops logger uses oops_in_progress variable to detect the begin and the > end of an oops. The end is detected when the first non-oops line comes and > oops_in_progress is false. > > This works if the kernel is still running after the oops and gemerates some > non-oops messages. But if there is no non-oops line following an oops, no > flushing will occur and there won't be a log on flash.
There was a printk within bust_spinlocks which flushed the klogd queues and hence flushed the mtd_oops queue too. I've noticed this has recently been removed and replaced with a wait queue [1] and hence the problem mentioned above now exists (but didn't when the driver was developed). [1] http://git.o-hand.com/?p=linux-rpurdie;a=commitdiff;h=e3e8a75d2acfc61ebf25524666a0a2c6abb0620c This raises the question of how to known when the oops has completed. The neatest solution I can see would be to add some kind of optional sync function pointer to struct console. Would that be acceptable? Richard - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/