diff options
| author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2008-10-16 01:01:35 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 14:21:31 -0400 |
| commit | c80cfb0406c01bb5da91bfe30f5cb1fd96831138 (patch) | |
| tree | 9f9d382c30457f8553bcd3e4ae5cc03dc2dc120b | |
| parent | 404d0ae289f7a76ff233e8fbfde8b1e7b6e62ae3 (diff) | |
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: Bjorn 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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | Documentation/feature-removal-schedule.txt | 9 | ||||
| -rw-r--r-- | drivers/base/power/main.c | 7 | ||||
| -rw-r--r-- | include/linux/kallsyms.h | 8 |
3 files changed, 14 insertions, 10 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 4d2566a7d168..f5f812daf9f4 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -294,6 +294,15 @@ Who: Jiri Slaby <jirislaby@gmail.com> | |||
| 294 | 294 | ||
| 295 | --------------------------- | 295 | --------------------------- |
| 296 | 296 | ||
| 297 | What: print_fn_descriptor_symbol() | ||
| 298 | When: October 2009 | ||
| 299 | Why: The %pF vsprintf format provides the same functionality in a | ||
| 300 | simpler way. print_fn_descriptor_symbol() is deprecated but | ||
| 301 | still present to give out-of-tree modules time to change. | ||
| 302 | Who: Bjorn Helgaas <bjorn.helgaas@hp.com> | ||
| 303 | |||
| 304 | --------------------------- | ||
| 305 | |||
| 297 | What: /sys/o2cb symlink | 306 | What: /sys/o2cb symlink |
| 298 | When: January 2010 | 307 | When: January 2010 |
| 299 | Why: /sys/fs/o2cb is the proper location for this information - /sys/o2cb | 308 | Why: /sys/fs/o2cb is the proper location for this information - /sys/o2cb |
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index 273a944d4040..03bde7524bc3 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c | |||
| @@ -778,10 +778,7 @@ EXPORT_SYMBOL_GPL(device_suspend); | |||
| 778 | 778 | ||
| 779 | void __suspend_report_result(const char *function, void *fn, int ret) | 779 | void __suspend_report_result(const char *function, void *fn, int ret) |
| 780 | { | 780 | { |
| 781 | if (ret) { | 781 | if (ret) |
| 782 | printk(KERN_ERR "%s(): ", function); | 782 | printk(KERN_ERR "%s(): %pF returns %d\n", function, fn, ret); |
| 783 | print_fn_descriptor_symbol("%s returns ", fn); | ||
| 784 | printk("%d\n", ret); | ||
| 785 | } | ||
| 786 | } | 783 | } |
| 787 | EXPORT_SYMBOL_GPL(__suspend_report_result); | 784 | EXPORT_SYMBOL_GPL(__suspend_report_result); |
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index b96144887444..f3fe34391d8e 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h | |||
| @@ -93,12 +93,10 @@ static inline void print_symbol(const char *fmt, unsigned long addr) | |||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | /* | 95 | /* |
| 96 | * Pretty-print a function pointer. | 96 | * Pretty-print a function pointer. This function is deprecated. |
| 97 | * | 97 | * Please use the "%pF" vsprintf format instead. |
| 98 | * ia64 and ppc64 function pointers are really function descriptors, | ||
| 99 | * which contain a pointer the real address. | ||
| 100 | */ | 98 | */ |
| 101 | static inline void print_fn_descriptor_symbol(const char *fmt, void *addr) | 99 | static inline void __deprecated print_fn_descriptor_symbol(const char *fmt, void *addr) |
| 102 | { | 100 | { |
| 103 | #if defined(CONFIG_IA64) || defined(CONFIG_PPC64) | 101 | #if defined(CONFIG_IA64) || defined(CONFIG_PPC64) |
| 104 | addr = *(void **)addr; | 102 | addr = *(void **)addr; |
