Re: [PATCH RESEND 1/2] vsprintf: introduce %pT format specifier
From: Frederic Weisbecker <hidden>
Date: 2011-03-23 13:49:54
Also in:
lkml
2011/3/23 Steven Rostedt [off-list ref]:
On Wed, 2011-03-23 at 22:29 +0900, Namhyung Kim wrote:quoted
The %pT format specifier is for stack backtrace. Its handler sprint_trace() does symbol lookup using (address-1) to ensure the address will not point outside of the function. If there is a tail-call to the function marked "noreturn", gcc optimized out the code after the call then causes saved return address points outside of the function (i.e. the start of the next function), so pollutes call trace somewhat. This patch will fix it. before: [ 18.345923] Call Trace: [ 18.346001] [<ffffffff812a8502>] panic+0x8c/0x18d [ 18.346257] [<ffffffffa000012a>] deep01+0x0/0x38 [test_panic] <--- bad [ 18.346347] [<ffffffff81104666>] proc_file_write+0x73/0x8d [ 18.346432] [<ffffffff811000b3>] proc_reg_write+0x8d/0xac [ 18.346516] [<ffffffff810c7d32>] vfs_write+0xa1/0xc5 [ 18.346603] [<ffffffff810c7e0f>] sys_write+0x45/0x6c [ 18.346801] [<ffffffff8f02943b>] system_call_fastpath+0x16/0x1b after: [ 22.224483] Call Trace: [ 22.224569] [<ffffffff812bce69>] panic+0x8c/0x18d [ 22.224848] [<ffffffffa000012a>] panic_write+0x20/0x20 [test_panic] <--- ok [ 22.224979] [<ffffffff81115fab>] proc_file_write+0x73/0x8d [ 22.225089] [<ffffffff81111a5f>] proc_reg_write+0x8d/0xac [ 22.225199] [<ffffffff810d90ee>] vfs_write+0xa1/0xc5 [ 22.225304] [<ffffffff810d91cb>] sys_write+0x45/0x6c [ 22.225408] [<ffffffff812c07fb>] system_call_fastpath+0x16/0x1bNice Acked-by: Steven Rostedt <rostedt@goodmis.org>
Same for me: Acked-by: Frederic Weisbecker <redacted>