alistair23-linux/include/linux/start_kernel.h
Martin Schwidefsky 53c99bd665 init: add arch_call_rest_init to allow stack switching
With CONFIG_VMAP_STACK=y the kernel stack of all tasks should be
allocated in the vmalloc space. The initial stack used for all
the early init code is in the init_thread_union. To be able to
switch from this early stack to a properly allocated stack
from vmalloc the architecture needs a switch-over point.

Introduce the arch_call_rest_init() function with a weak definition
in init/main.c with the only purpose to call rest_init() from the
end of start_kernel(). The architecture override can then do the
necessary magic to switch to the new vmalloc'ed stack.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2018-10-09 11:20:55 +02:00

16 lines
415 B
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_START_KERNEL_H
#define _LINUX_START_KERNEL_H
#include <linux/linkage.h>
#include <linux/init.h>
/* Define the prototype for start_kernel here, rather than cluttering
up something else. */
extern asmlinkage void __init start_kernel(void);
extern void __init arch_call_rest_init(void);
extern void __ref rest_init(void);
#endif /* _LINUX_START_KERNEL_H */