Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 96802
b: refs/heads/master
c: a442ac5
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed May 16, 2008
1 parent 0bb3216 commit b186929
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7371fd11a6e2aed99895db4f100940fa5022f7fe
refs/heads/master: a442ac512f36981182e66a427ad05f449ff6593b
2 changes: 1 addition & 1 deletion trunk/drivers/base/power/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ void __suspend_report_result(const char *function, void *fn, int ret)
{
if (ret) {
printk(KERN_ERR "%s(): ", function);
print_fn_descriptor_symbol("%s() returns ", (unsigned long)fn);
print_fn_descriptor_symbol("%s returns ", fn);
printk("%d\n", ret);
}
}
Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/pci/quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -1503,8 +1503,7 @@ static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_f
(f->device == dev->device || f->device == (u16) PCI_ANY_ID)) {
#ifdef DEBUG
dev_dbg(&dev->dev, "calling ");
print_fn_descriptor_symbol("%s()\n",
(unsigned long) f->hook);
print_fn_descriptor_symbol("%s\n", f->hook);
#endif
f->hook(dev);
}
Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/pnp/quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -331,8 +331,7 @@ void pnp_fixup_device(struct pnp_dev *dev)
continue;
#ifdef DEBUG
dev_dbg(&dev->dev, "%s: calling ", f->id);
print_fn_descriptor_symbol("%s\n",
(unsigned long) f->quirk_function);
print_fn_descriptor_symbol("%s\n", f->quirk_function);
#endif
f->quirk_function(dev);
}
Expand Down
24 changes: 14 additions & 10 deletions trunk/include/linux/kallsyms.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,6 @@ __attribute__((format(printf,1,2)));
static inline void __check_printsym_format(const char *fmt, ...)
{
}
/* ia64 and ppc64 use function descriptors, which contain the real address */
#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
#define print_fn_descriptor_symbol(fmt, addr) \
do { \
unsigned long *__faddr = (unsigned long*) addr; \
print_symbol(fmt, __faddr[0]); \
} while (0)
#else
#define print_fn_descriptor_symbol(fmt, addr) print_symbol(fmt, addr)
#endif

static inline void print_symbol(const char *fmt, unsigned long addr)
{
Expand All @@ -101,6 +91,20 @@ static inline void print_symbol(const char *fmt, unsigned long addr)
__builtin_extract_return_addr((void *)addr));
}

/*
* Pretty-print a function pointer.
*
* 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)
{
#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
addr = *(void **)addr;
#endif
print_symbol(fmt, (unsigned long)addr);
}

#ifndef CONFIG_64BIT
#define print_ip_sym(ip) \
do { \
Expand Down
9 changes: 3 additions & 6 deletions trunk/init/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -706,8 +706,7 @@ static void __init do_initcalls(void)
int result;

if (initcall_debug) {
print_fn_descriptor_symbol("calling %s()\n",
(unsigned long) *call);
print_fn_descriptor_symbol("calling %s\n", *call);
t0 = ktime_get();
}

Expand All @@ -717,8 +716,7 @@ static void __init do_initcalls(void)
t1 = ktime_get();
delta = ktime_sub(t1, t0);

print_fn_descriptor_symbol("initcall %s()",
(unsigned long) *call);
print_fn_descriptor_symbol("initcall %s", *call);
printk(" returned %d after %Ld msecs\n", result,
(unsigned long long) delta.tv64 >> 20);
}
Expand All @@ -737,8 +735,7 @@ static void __init do_initcalls(void)
local_irq_enable();
}
if (msgbuf[0]) {
print_fn_descriptor_symbol(KERN_WARNING "initcall %s()",
(unsigned long) *call);
print_fn_descriptor_symbol(KERN_WARNING "initcall %s", *call);
printk(" returned with %s\n", msgbuf);
}
}
Expand Down

0 comments on commit b186929

Please sign in to comment.