Vegard, Am 12.03.2017 um 10:38 schrieb Vegard Nossum: > Without KERN_CONT, the symbol will appear on a new line, making stack > traces completely unreadable: > > Call Trace: > [<6008e891>] ? > printk+0x0/0x94 > [<6001cce6>] > show_stack+0xfe/0x15b > [<600666ec>] ? > dump_stack_print_info+0xe1/0xea > [<6008e891>] ? > printk+0x0/0x94 > [<6023e826>] ? > bust_spinlocks+0x0/0x4f > [<602343b8>] > dump_stack+0x2a/0x2c > [<6008e662>] > panic+0x170/0x31e > [<6008e4f2>] ? > panic+0x0/0x31e > > This makes it readable again: > > Call Trace: > [<6008e891>] ? printk+0x0/0x94 > [<6001cce6>] show_stack+0xfe/0x15b > [<600666ec>] ? dump_stack_print_info+0xe1/0xea > [<6008e891>] ? printk+0x0/0x94 > [<6023e826>] ? bust_spinlocks+0x0/0x4f > [<602343b8>] dump_stack+0x2a/0x2c > [<6008e662>] panic+0x170/0x31e > > Signed-off-by: Vegard Nossum <vegard.nos...@oracle.com> > --- > arch/um/kernel/sysrq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c > index a76295f7ede9..edf1f80123e7 100644 > --- a/arch/um/kernel/sysrq.c > +++ b/arch/um/kernel/sysrq.c > @@ -22,7 +22,7 @@ static void _print_addr(void *data, unsigned long address, > int reliable) > { > pr_info(" [<%08lx>]", address); > pr_cont(" %s", reliable ? "" : "? "); > - print_symbol("%s", address); > + print_symbol(KERN_CONT "%s", address); > pr_cont("\n"); > } >
I think it is better to fix the root of the problem by using a single printk. i.e. diff --git a/arch/um/kernel/sysrq.c b/arch/um/kernel/sysrq.c index aa1b56f5ac68..18eddf677ec6 100644 --- a/arch/um/kernel/sysrq.c +++ b/arch/um/kernel/sysrq.c @@ -17,10 +17,8 @@ static void _print_addr(void *data, unsigned long address, int reliable) { - pr_info(" [<%08lx>]", address); - pr_cont(" %s", reliable ? "" : "? "); - print_symbol("%s", address); - pr_cont("\n"); + pr_info(" [<%08lx>] %s%pB\n", address, reliable ? "" : "? ", + (void *)address); } Thanks, //richard