On Fri, 2014-11-07 at 16:50 +0000, Daniel Thompson wrote:
On 07/11/14 16:04, Joe Perches wrote:
why insert KERN_INFO?
vkdb_printf() and printk() can appear either way round in a stack trace. Each is capable of calling the other and a flag (kdb_trap_printk) is used to prevent mutual recursion.
I see.
A complete solution would require a means to know whether vkdb_printf() were entered directly or from printk(). A flag passed to vkdb_printf() would achieve this. I'll take a look.
That bit seems pretty simple and sensible.
I don't know this code at all but would it be better if the kdb_trap_printk accesses were converted to atomic_<foo>?
Might this bit in vkdb_printf:
saved_trap_printk = kdb_trap_printk; kdb_trap_printk = 0;
be better atomic_xchg?
and the kdb_trap_printk++ bits as atomic_inc, etc...