diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 11 | ||||
-rw-r--r-- | init/init_task.c | 2 | ||||
-rw-r--r-- | init/main.c | 20 |
3 files changed, 27 insertions, 6 deletions
diff --git a/init/Kconfig b/init/Kconfig index aafafeb0c117..4dd8bd232a1d 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1156,7 +1156,8 @@ config CGROUP_PERF config CGROUP_BPF bool "Support for eBPF programs attached to cgroups" - depends on BPF_SYSCALL && SOCK_CGROUP_DATA + depends on BPF_SYSCALL + select SOCK_CGROUP_DATA help Allow attaching eBPF programs to a cgroup using the bpf(2) syscall command BPF_PROG_ATTACH. @@ -1175,6 +1176,10 @@ config CGROUP_DEBUG Say N. +config SOCK_CGROUP_DATA + bool + default n + endif # CGROUPS config CHECKPOINT_RESTORE @@ -1982,6 +1987,10 @@ config MODVERSIONS make them incompatible with the kernel you are running. If unsure, say N. +config MODULE_REL_CRCS + bool + depends on MODVERSIONS + config MODULE_SRCVERSION_ALL bool "Source checksum for all modules" help diff --git a/init/init_task.c b/init/init_task.c index 11f83be1fa79..53d4ce942a88 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -9,7 +9,7 @@ #include <linux/mm.h> #include <asm/pgtable.h> -#include <asm/uaccess.h> +#include <linux/uaccess.h> static struct signal_struct init_signals = INIT_SIGNALS(init_signals); static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); diff --git a/init/main.c b/init/main.c index fa201166cba7..b0c9d6facef9 100644 --- a/init/main.c +++ b/init/main.c @@ -81,6 +81,7 @@ #include <linux/integrity.h> #include <linux/proc_ns.h> #include <linux/io.h> +#include <linux/cache.h> #include <asm/io.h> #include <asm/bugs.h> @@ -553,6 +554,14 @@ asmlinkage __visible void __init start_kernel(void) "Interrupts were enabled *very* early, fixing it\n")) local_irq_disable(); idr_init_cache(); + + /* + * Allow workqueue creation and work item queueing/cancelling + * early. Work item execution depends on kthreads and starts after + * workqueue_init(). + */ + workqueue_init_early(); + rcu_init(); /* trace_printk() and trace points may be used after this */ @@ -638,9 +647,8 @@ asmlinkage __visible void __init start_kernel(void) security_init(); dbg_late_init(); vfs_caches_init(); + pagecache_init(); signals_init(); - /* rootfs populating might need page-writeback */ - page_writeback_init(); proc_root_init(); nsfs_init(); cpuset_init(); @@ -917,14 +925,16 @@ static int try_to_run_init_process(const char *init_filename) static noinline void __init kernel_init_freeable(void); -#ifdef CONFIG_DEBUG_RODATA -static bool rodata_enabled = true; +#if defined(CONFIG_DEBUG_RODATA) || defined(CONFIG_DEBUG_SET_MODULE_RONX) +bool rodata_enabled __ro_after_init = true; static int __init set_debug_rodata(char *str) { return strtobool(str, &rodata_enabled); } __setup("rodata=", set_debug_rodata); +#endif +#ifdef CONFIG_DEBUG_RODATA static void mark_readonly(void) { if (rodata_enabled) @@ -1009,6 +1019,8 @@ static noinline void __init kernel_init_freeable(void) smp_prepare_cpus(setup_max_cpus); + workqueue_init(); + do_pre_smp_initcalls(); lockup_detector_init(); |