Commit c80cfb04 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Linus Torvalds

vsprintf: use new vsprintf symbolic function pointer format

Use the '%pF' format to get rid of an "#ifdef DEBUG" and make some printks
atomic.

This removes the last in-tree uses of print_fn_descriptor_symbol().  I
marked print_fn_descriptor_symbol() deprecated and scheduled it for
removal next year to give time for out-of-tree modules to be updated.

parisc's print_fn_descriptor_symbol() is currently broken there (it needs
to dereference the function pointer similar to ia64 and power).  This
patch shouldn't make anything worse, but it means we need to fix
dereference_function_descriptor() instead of print_fn_descriptor_symbol()
to get meaningful initcall_debug output.
Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 404d0ae2
...@@ -294,6 +294,15 @@ Who: Jiri Slaby <jirislaby@gmail.com> ...@@ -294,6 +294,15 @@ Who: Jiri Slaby <jirislaby@gmail.com>
--------------------------- ---------------------------
What: print_fn_descriptor_symbol()
When: October 2009
Why: The %pF vsprintf format provides the same functionality in a
simpler way. print_fn_descriptor_symbol() is deprecated but
still present to give out-of-tree modules time to change.
Who: Bjorn Helgaas <bjorn.helgaas@hp.com>
---------------------------
What: /sys/o2cb symlink What: /sys/o2cb symlink
When: January 2010 When: January 2010
Why: /sys/fs/o2cb is the proper location for this information - /sys/o2cb Why: /sys/fs/o2cb is the proper location for this information - /sys/o2cb
......
...@@ -778,10 +778,7 @@ EXPORT_SYMBOL_GPL(device_suspend); ...@@ -778,10 +778,7 @@ EXPORT_SYMBOL_GPL(device_suspend);
void __suspend_report_result(const char *function, void *fn, int ret) void __suspend_report_result(const char *function, void *fn, int ret)
{ {
if (ret) { if (ret)
printk(KERN_ERR "%s(): ", function); printk(KERN_ERR "%s(): %pF returns %d\n", function, fn, ret);
print_fn_descriptor_symbol("%s returns ", fn);
printk("%d\n", ret);
}
} }
EXPORT_SYMBOL_GPL(__suspend_report_result); EXPORT_SYMBOL_GPL(__suspend_report_result);
...@@ -93,12 +93,10 @@ static inline void print_symbol(const char *fmt, unsigned long addr) ...@@ -93,12 +93,10 @@ static inline void print_symbol(const char *fmt, unsigned long addr)
} }
/* /*
* Pretty-print a function pointer. * Pretty-print a function pointer. This function is deprecated.
* * Please use the "%pF" vsprintf format instead.
* ia64 and ppc64 function pointers are really function descriptors,
* which contain a pointer the real address.
*/ */
static inline void print_fn_descriptor_symbol(const char *fmt, void *addr) static inline void __deprecated print_fn_descriptor_symbol(const char *fmt, void *addr)
{ {
#if defined(CONFIG_IA64) || defined(CONFIG_PPC64) #if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
addr = *(void **)addr; addr = *(void **)addr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment