aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-03-16 14:51:08 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-16 14:51:08 -0400
commit271ecc5253e2b317d729d366560789cd7f93836c (patch)
treed3a60bc4dfa8245ff934f357f2367db76b59e7cf /init
parentaa6865d836418eb2ba888a4cb1318a28e9aa2e0c (diff)
parent63c06227a22b098a3849c5c99e836aea161ca0d7 (diff)
Merge branch 'akpm' (patches from Andrew)
Merge first patch-bomb from Andrew Morton: - some misc things - ofs2 updates - about half of MM - checkpatch updates - autofs4 update * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (120 commits) autofs4: fix string.h include in auto_dev-ioctl.h autofs4: use pr_xxx() macros directly for logging autofs4: change log print macros to not insert newline autofs4: make autofs log prints consistent autofs4: fix some white space errors autofs4: fix invalid ioctl return in autofs4_root_ioctl_unlocked() autofs4: fix coding style line length in autofs4_wait() autofs4: fix coding style problem in autofs4_get_set_timeout() autofs4: coding style fixes autofs: show pipe inode in mount options kallsyms: add support for relative offsets in kallsyms address table kallsyms: don't overload absolute symbol type for percpu symbols x86: kallsyms: disable absolute percpu symbols on !SMP checkpatch: fix another left brace warning checkpatch: improve UNSPECIFIED_INT test for bare signed/unsigned uses checkpatch: warn on bare unsigned or signed declarations without int checkpatch: exclude asm volatile from complex macro check mm: memcontrol: drop unnecessary lru locking from mem_cgroup_migrate() mm: migrate: consolidate mem_cgroup_migrate() calls mm/compaction: speed up pageblock_pfn_to_page() when zone is contiguous ...
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig22
-rw-r--r--init/main.c4
2 files changed, 23 insertions, 3 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 22320804fbaf..fd664b3ab99e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1420,6 +1420,28 @@ config KALLSYMS_ALL
1420 1420
1421 Say N unless you really need all symbols. 1421 Say N unless you really need all symbols.
1422 1422
1423config KALLSYMS_ABSOLUTE_PERCPU
1424 bool
1425 default X86_64 && SMP
1426
1427config KALLSYMS_BASE_RELATIVE
1428 bool
1429 depends on KALLSYMS
1430 default !IA64 && !(TILE && 64BIT)
1431 help
1432 Instead of emitting them as absolute values in the native word size,
1433 emit the symbol references in the kallsyms table as 32-bit entries,
1434 each containing a relative value in the range [base, base + U32_MAX]
1435 or, when KALLSYMS_ABSOLUTE_PERCPU is in effect, each containing either
1436 an absolute value in the range [0, S32_MAX] or a relative value in the
1437 range [base, base + S32_MAX], where base is the lowest relative symbol
1438 address encountered in the image.
1439
1440 On 64-bit builds, this reduces the size of the address table by 50%,
1441 but more importantly, it results in entries whose values are build
1442 time constants, and no relocation pass is required at runtime to fix
1443 up the entries based on the runtime load address of the kernel.
1444
1423config PRINTK 1445config PRINTK
1424 default y 1446 default y
1425 bool "Enable support for printk" if EXPERT 1447 bool "Enable support for printk" if EXPERT
diff --git a/init/main.c b/init/main.c
index 8dc93df20f7f..b3c6e363ae18 100644
--- a/init/main.c
+++ b/init/main.c
@@ -705,7 +705,6 @@ static int __init initcall_blacklist(char *str)
705 705
706static bool __init_or_module initcall_blacklisted(initcall_t fn) 706static bool __init_or_module initcall_blacklisted(initcall_t fn)
707{ 707{
708 struct list_head *tmp;
709 struct blacklist_entry *entry; 708 struct blacklist_entry *entry;
710 char *fn_name; 709 char *fn_name;
711 710
@@ -713,8 +712,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
713 if (!fn_name) 712 if (!fn_name)
714 return false; 713 return false;
715 714
716 list_for_each(tmp, &blacklisted_initcalls) { 715 list_for_each_entry(entry, &blacklisted_initcalls, next) {
717 entry = list_entry(tmp, struct blacklist_entry, next);
718 if (!strcmp(fn_name, entry->buf)) { 716 if (!strcmp(fn_name, entry->buf)) {
719 pr_debug("initcall %s blacklisted\n", fn_name); 717 pr_debug("initcall %s blacklisted\n", fn_name);
720 kfree(fn_name); 718 kfree(fn_name);