diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2022-06-04 17:50:50 +0900 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2022-06-06 10:23:33 +1000 |
commit | 7ad4bd887d27c6b6ffbef216f19c19f8fe2b8f52 (patch) | |
tree | 3f7e64c441dd4223241513ec2ff8a853c84157bb /arch | |
parent | 3e8635fb2e072672cbc650989ffedf8300ad67fb (diff) | |
download | linux-stable-7ad4bd887d27c6b6ffbef216f19c19f8fe2b8f52.tar.gz linux-stable-7ad4bd887d27c6b6ffbef216f19c19f8fe2b8f52.tar.bz2 linux-stable-7ad4bd887d27c6b6ffbef216f19c19f8fe2b8f52.zip |
powerpc/book3e: get rid of #include <generated/compile.h>
You cannot include <generated/compile.h> here because it is generated
in init/Makefile but there is no guarantee that it happens before
arch/powerpc/mm/nohash/kaslr_booke.c is compiled for parallel builds.
The places where you can reliably include <generated/compile.h> are:
- init/ (because init/Makefile can specify the dependency)
- arch/*/boot/ (because it is compiled after vmlinux)
Commit f231e4333312 ("hexagon: get rid of #include <generated/compile.h>")
fixed the last breakage at that time, but powerpc re-added this.
<generated/compile.h> was unneeded because 'build_str' is almost the
same as 'linux_banner' defined in init/version.c
Let's copy the solution from MIPS.
(get_random_boot() in arch/mips/kernel/relocate.c)
Fixes: 6a38ea1d7b94 ("powerpc/fsl_booke/32: randomize the kernel image offset")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Scott Wood <oss@buserror.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220604085050.4078927-1-masahiroy@kernel.org
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/mm/nohash/kaslr_booke.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/powerpc/mm/nohash/kaslr_booke.c b/arch/powerpc/mm/nohash/kaslr_booke.c index 1f3f9fedf1bc..0d04f9d5da8d 100644 --- a/arch/powerpc/mm/nohash/kaslr_booke.c +++ b/arch/powerpc/mm/nohash/kaslr_booke.c @@ -19,7 +19,6 @@ #include <asm/cacheflush.h> #include <asm/kdump.h> #include <mm/mmu_decl.h> -#include <generated/compile.h> #include <generated/utsrelease.h> struct regions { @@ -37,10 +36,6 @@ struct regions { int reserved_mem_size_cells; }; -/* Simplified build-specific string for starting entropy. */ -static const char build_str[] = UTS_RELEASE " (" LINUX_COMPILE_BY "@" - LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION; - struct regions __initdata regions; static __init void kaslr_get_cmdline(void *fdt) @@ -71,7 +66,8 @@ static unsigned long __init get_boot_seed(void *fdt) { unsigned long hash = 0; - hash = rotate_xor(hash, build_str, sizeof(build_str)); + /* build-specific string for starting entropy. */ + hash = rotate_xor(hash, linux_banner, strlen(linux_banner)); hash = rotate_xor(hash, fdt, fdt_totalsize(fdt)); return hash; |