summaryrefslogtreecommitdiffstats
path: root/arch/xtensa/kernel/setup.c
diff options
context:
space:
mode:
authorMax Filippov2017-12-16 05:45:35 +0100
committerMax Filippov2017-12-17 07:37:10 +0100
commitc2edb35ae342fedb5a39312c0fa676b74973887a (patch)
treea5684736d06f5073522c9126cc3f836b7593dad8 /arch/xtensa/kernel/setup.c
parentxtensa: implement early_trap_init (diff)
downloadkernel-qcow2-linux-c2edb35ae342fedb5a39312c0fa676b74973887a.tar.gz
kernel-qcow2-linux-c2edb35ae342fedb5a39312c0fa676b74973887a.tar.xz
kernel-qcow2-linux-c2edb35ae342fedb5a39312c0fa676b74973887a.zip
xtensa: extract init_kio
KIO region placement may be specified in the device tree, that's why it's initialized with the rest of MMU after the early_init_devtree. In order to support KASAN the MMU must be initialized earlier. Separate KIO initialization from the rest of MMU initialization. Reinitialize KIO if its location is specified in the device tree. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/kernel/setup.c')
-rw-r--r--arch/xtensa/kernel/setup.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index cf7516c52a19..960212e72a70 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -207,6 +207,8 @@ static int __init xtensa_dt_io_area(unsigned long node, const char *uname,
/* round down to nearest 256MB boundary */
xtensa_kio_paddr &= 0xf0000000;
+ init_kio();
+
return 1;
}
#else
@@ -245,6 +247,10 @@ void __init early_init_devtree(void *params)
void __init init_arch(bp_tag_t *bp_start)
{
+ /* Initialize MMU. */
+
+ init_mmu();
+
/* Parse boot parameters */
if (bp_start)
@@ -262,10 +268,6 @@ void __init init_arch(bp_tag_t *bp_start)
/* Early hook for platforms */
platform_init(bp_start);
-
- /* Initialize MMU. */
-
- init_mmu();
}
/*