projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e3d0359
)
x86/boot/64: Verify alignment of the LOAD segment
author
H.J. Lu
<
[email protected]
>
Mon, 19 Mar 2018 21:08:11 +0000
(14:08 -0700)
committer
Ingo Molnar
<
[email protected]
>
Tue, 20 Mar 2018 07:03:03 +0000
(08:03 +0100)
Since the x86-64 kernel must be aligned to 2MB, refuse to boot the
kernel if the alignment of the LOAD segment isn't a multiple of 2MB.
Signed-off-by: H.J. Lu <
[email protected]
>
Cc: Andy Shevchenko <
[email protected]
>
Cc: Eric Biederman <
[email protected]
>
Cc: H. Peter Anvin <
[email protected]
>
Cc: Juergen Gross <
[email protected]
>
Cc: Kees Cook <
[email protected]
>
Cc: Kirill A. Shutemov <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Link:
http://lkml.kernel.org/r/CAMe9rOrR7xSJgUfiCoZLuqWUwymRxXPoGBW38%2BpN%3D9g%
[email protected]
Signed-off-by: Ingo Molnar <
[email protected]
>
arch/x86/boot/compressed/misc.c
patch
|
blob
|
history
diff --git
a/arch/x86/boot/compressed/misc.c
b/arch/x86/boot/compressed/misc.c
index 98761a1576ceb5c21b2d8c7e98c1217fd48abb26..252fee32081662ce3bf21d71158969afc9c596b3 100644
(file)
--- a/
arch/x86/boot/compressed/misc.c
+++ b/
arch/x86/boot/compressed/misc.c
@@
-309,6
+309,10
@@
static void parse_elf(void *output)
switch (phdr->p_type) {
case PT_LOAD:
+#ifdef CONFIG_X86_64
+ if ((phdr->p_align % 0x200000) != 0)
+ error("Alignment of LOAD segment isn't multiple of 2MB");
+#endif
#ifdef CONFIG_RELOCATABLE
dest = output;
dest += (phdr->p_paddr - LOAD_PHYSICAL_ADDR);