diff options
author | Jakub Kicinski <kuba@kernel.org> | 2022-06-09 16:38:15 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-06-09 16:38:15 -0700 |
commit | a98a62e456e25048e8d64ec452a1c713169d3517 (patch) | |
tree | 52bc4063aae5015ef28f174d9de409788ee9e0a4 /init | |
parent | 263efe85a4b618037e1003c9636562d6cbb5f9f3 (diff) | |
parent | 825464e79db4aac936e0fdae62cdfb7546d0028f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
No conflicts.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 9 | ||||
-rw-r--r-- | init/initramfs.c | 2 | ||||
-rw-r--r-- | init/main.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/init/Kconfig b/init/Kconfig index c984afc489de..c7900e8975f1 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -885,6 +885,15 @@ config CC_IMPLICIT_FALLTHROUGH default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5) default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough) +# Currently, disable gcc-12 array-bounds globally. +# We may want to target only particular configurations some day. +config GCC12_NO_ARRAY_BOUNDS + def_bool y + +config CC_NO_ARRAY_BOUNDS + bool + default y if CC_IS_GCC && GCC_VERSION >= 120000 && GCC_VERSION < 130000 && GCC12_NO_ARRAY_BOUNDS + # # For architectures that know their GCC __int128 support is sound # diff --git a/init/initramfs.c b/init/initramfs.c index dc84cf756cea..18229cfe8906 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -15,6 +15,7 @@ #include <linux/mm.h> #include <linux/namei.h> #include <linux/init_syscalls.h> +#include <linux/task_work.h> #include <linux/umh.h> static __initdata bool csum_present; @@ -727,6 +728,7 @@ done: initrd_end = 0; flush_delayed_fput(); + task_work_run(); } static ASYNC_DOMAIN_EXCLUSIVE(initramfs_domain); diff --git a/init/main.c b/init/main.c index 02eb533018f6..0ee39cdcfcac 100644 --- a/init/main.c +++ b/init/main.c @@ -688,7 +688,7 @@ noinline void __ref rest_init(void) * the init task will end up wanting to create kthreads, which, if * we schedule it before we create kthreadd, will OOPS. */ - pid = kernel_thread(kernel_init, NULL, CLONE_FS); + pid = user_mode_thread(kernel_init, NULL, CLONE_FS); /* * Pin init on the boot CPU. Task migration is not properly working * until sched_init_smp() has been run. It will set the allowed |