diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 17 | ||||
-rw-r--r-- | init/Makefile | 2 | ||||
-rw-r--r-- | init/init_task.c | 7 | ||||
-rw-r--r-- | init/main.c | 1 |
4 files changed, 19 insertions, 8 deletions
diff --git a/init/Kconfig b/init/Kconfig index cac3f096050d..34407f15e6d3 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -26,6 +26,16 @@ config IRQ_WORK config BUILDTIME_EXTABLE_SORT bool +config THREAD_INFO_IN_TASK + bool + help + Select this to move thread_info off the stack into task_struct. To + make this work, an arch will need to remove all thread_info fields + except flags and fix any runtime bugs. + + One subtle change that will be needed is to use try_get_task_stack() + and put_task_stack() in save_thread_stack_tsk() and get_wchan(). + menu "General setup" config BROKEN @@ -1278,6 +1288,7 @@ config SYSFS_DEPRECATED_V2 config RELAY bool "Kernel->user space relay support (formerly relayfs)" + select IRQ_WORK help This option enables support for relay interface support in certain file systems (such as debugfs). @@ -2108,12 +2119,6 @@ config PADATA depends on SMP bool -# Can be selected by architectures with broken toolchains -# that get confused by correct const<->read_only section -# mappings -config BROKEN_RODATA - bool - config ASN1 tristate help diff --git a/init/Makefile b/init/Makefile index 7bc47ee31c36..c4fb45525d08 100644 --- a/init/Makefile +++ b/init/Makefile @@ -2,6 +2,8 @@ # Makefile for the linux kernel. # +ccflags-y := -fno-function-sections -fno-data-sections + obj-y := main.o version.o mounts.o ifneq ($(CONFIG_BLK_DEV_INITRD),y) obj-y += noinitramfs.o diff --git a/init/init_task.c b/init/init_task.c index ba0a7f362d9e..11f83be1fa79 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -22,5 +22,8 @@ EXPORT_SYMBOL(init_task); * Initial thread structure. Alignment of this is handled by a special * linker map entry. */ -union thread_union init_thread_union __init_task_data = - { INIT_THREAD_INFO(init_task) }; +union thread_union init_thread_union __init_task_data = { +#ifndef CONFIG_THREAD_INFO_IN_TASK + INIT_THREAD_INFO(init_task) +#endif +}; diff --git a/init/main.c b/init/main.c index a8a58e2794a5..2858be732f6d 100644 --- a/init/main.c +++ b/init/main.c @@ -789,6 +789,7 @@ int __init_or_module do_one_initcall(initcall_t fn) } WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf); + add_latent_entropy(); return ret; } |