init/main.c: fix initcall_blacklisted on ia64, ppc64 and parisc64
When I replaced kasprintf("%pf") with a direct call to
sprint_symbol_no_offset I must have broken the initcall blacklisting
feature on the arches where dereference_function_descriptor() is
non-trivial.
Fixes: c8cdd2be21 (init/main.c: simplify initcall_blacklisted())
Link: http://lkml.kernel.org/r/1466027283-4065-1-git-send-email-linux@rasmusvillemoes.dk
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Yang Shi <yang.shi@linaro.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Petr Mladek <pmladek@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
5a9294e5c5
commit
0fd5ed8d89
@@ -708,11 +708,13 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
|
|||||||
{
|
{
|
||||||
struct blacklist_entry *entry;
|
struct blacklist_entry *entry;
|
||||||
char fn_name[KSYM_SYMBOL_LEN];
|
char fn_name[KSYM_SYMBOL_LEN];
|
||||||
|
unsigned long addr;
|
||||||
|
|
||||||
if (list_empty(&blacklisted_initcalls))
|
if (list_empty(&blacklisted_initcalls))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
sprint_symbol_no_offset(fn_name, (unsigned long)fn);
|
addr = (unsigned long) dereference_function_descriptor(fn);
|
||||||
|
sprint_symbol_no_offset(fn_name, addr);
|
||||||
|
|
||||||
list_for_each_entry(entry, &blacklisted_initcalls, next) {
|
list_for_each_entry(entry, &blacklisted_initcalls, next) {
|
||||||
if (!strcmp(fn_name, entry->buf)) {
|
if (!strcmp(fn_name, entry->buf)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user