diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-16 14:51:08 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-16 14:51:08 -0400 |
| commit | 271ecc5253e2b317d729d366560789cd7f93836c (patch) | |
| tree | d3a60bc4dfa8245ff934f357f2367db76b59e7cf /init | |
| parent | aa6865d836418eb2ba888a4cb1318a28e9aa2e0c (diff) | |
| parent | 63c06227a22b098a3849c5c99e836aea161ca0d7 (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/Kconfig | 22 | ||||
| -rw-r--r-- | init/main.c | 4 |
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 | ||
| 1423 | config KALLSYMS_ABSOLUTE_PERCPU | ||
| 1424 | bool | ||
| 1425 | default X86_64 && SMP | ||
| 1426 | |||
| 1427 | config 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 | |||
| 1423 | config PRINTK | 1445 | config 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 | ||
| 706 | static bool __init_or_module initcall_blacklisted(initcall_t fn) | 706 | static 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); |
