On 07.09.2017 06:50, Coly Li wrote: > On 2017/9/7 上午4:27, Helge Deller wrote: >> Use the %pS instead of the %pF printk format specifier for printing symbols >> from direct addresses. This is needed for the ia64, ppc64 and parisc64 >> architectures. >> >> Signed-off-by: Helge Deller <deller@xxxxxx> >> Cc: linux-bcache@xxxxxxxxxxxxxxx >> Cc: linux-raid@xxxxxxxxxxxxxxx >> --- >> drivers/md/bcache/closure.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c >> index 864e673..0b0c9bc 100644 >> --- a/drivers/md/bcache/closure.c >> +++ b/drivers/md/bcache/closure.c >> @@ -175,7 +175,7 @@ static int debug_seq_show(struct seq_file *f, void *data) >> list_for_each_entry(cl, &closure_list, all) { >> int r = atomic_read(&cl->remaining); >> >> - seq_printf(f, "%p: %pF -> %pf p %p r %i ", >> + seq_printf(f, "%p: %pS -> %pf p %p r %i ", >> cl, (void *) cl->ip, cl->fn, cl->parent, >> r & CLOSURE_REMAINING_MASK); >> >> @@ -187,7 +187,7 @@ static int debug_seq_show(struct seq_file *f, void *data) >> r & CLOSURE_SLEEPING ? "Sl" : ""); >> >> if (r & CLOSURE_WAITING) >> - seq_printf(f, " W %pF\n", >> + seq_printf(f, " W %pS\n", >> (void *) cl->waiting_on); >> >> seq_printf(f, "\n"); >> > > It is unclear to me, that if %pF is used, on ia64/ppc64/parisc64 a > function descriptor conversion happens, what negative effect exactly > takes place ? On ia64/ppc64/parisc64 the kernel will crash here in the worst case, because vsprintf() will try to read a pointer from that address and resolve it. But you hand over a return address (_RET_IP_) which should be resolved directly to a symbol. For that you need to use the %pS specifier, which is what my patch does. The patch has no negative effect on any platform. Output will still be the same on x86/mips/arm/... as it has been before with %pF. The only positive effect of the patch is that the seq_printf will now show correct output on ia64/ppc64/parisc64 too. Helge -- To unsubscribe from this list: send the line "unsubscribe linux-bcache" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html