Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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
When:	January 2010
Why:	/sys/fs/o2cb is the proper location for this information - /sys/o2cb
+2 −5
Original line number Diff line number Diff line
@@ -778,10 +778,7 @@ EXPORT_SYMBOL_GPL(device_suspend);

void __suspend_report_result(const char *function, void *fn, int ret)
{
	if (ret) {
		printk(KERN_ERR "%s(): ", function);
		print_fn_descriptor_symbol("%s returns ", fn);
		printk("%d\n", ret);
	}
	if (ret)
		printk(KERN_ERR "%s(): %pF returns %d\n", function, fn, ret);
}
EXPORT_SYMBOL_GPL(__suspend_report_result);
+3 −5
Original line number Diff line number Diff line
@@ -93,12 +93,10 @@ static inline void print_symbol(const char *fmt, unsigned long addr)
}

/*
 * Pretty-print a function pointer.
 *
 * ia64 and ppc64 function pointers are really function descriptors,
 * which contain a pointer the real address.
 * Pretty-print a function pointer.  This function is deprecated.
 * Please use the "%pF" vsprintf format instead.
 */
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)
	addr = *(void **)addr;