diff options
author | Rich Felker <dalias@libc.org> | 2017-07-31 01:27:50 -0400 |
---|---|---|
committer | Rich Felker <dalias@libc.org> | 2018-04-12 19:47:51 -0400 |
commit | eb6b6930a70faefe04479a71088cc10366782d9a (patch) | |
tree | a86769cb20fbc28fc58ef509058ad1a5bc81b97f /arch/sh/kernel | |
parent | 9b7e30ab975334448dc4c82941a48a3685a7642b (diff) |
sh: fix memory corruption of unflattened device tree
unflatten_device_tree() makes use of memblock allocation, and
therefore must be called before paging_init() migrates the memblock
allocation data to the bootmem framework. Otherwise the record of the
allocation for the expanded device tree will be lost, and will
eventually be clobbered when allocated for another use.
Signed-off-by: Rich Felker <dalias@libc.org>
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/setup.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index b95c411d0333..d34e998b809f 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c @@ -330,6 +330,14 @@ void __init setup_arch(char **cmdline_p) /* Let earlyprintk output early console messages */ early_platform_driver_probe("earlyprintk", 1, 1); +#ifdef CONFIG_OF_FLATTREE +#ifdef CONFIG_USE_BUILTIN_DTB + unflatten_and_copy_device_tree(); +#else + unflatten_device_tree(); +#endif +#endif + paging_init(); #ifdef CONFIG_DUMMY_CONSOLE |