On Fri, Jan 22, 2016 at 1:13 PM, Alexander Kuleshov <kuleshovm...@gmail.com> wrote: > We check that the base address of the kernel is 2M aligned in > the arch/x86/kernel/head_65.S right after jump to the decompressed > kernel. But we already have a check in the decompress_kernel() > which validates that kernel location is MIN_KERNEL_ALIGN aligned > which is 2M too for x86_64. > > Signed-off-by: Alexander Kuleshov <kuleshovm...@gmail.com> > --- > arch/x86/kernel/head_64.S | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S > index ffdc0e8..4967cba 100644 > --- a/arch/x86/kernel/head_64.S > +++ b/arch/x86/kernel/head_64.S > @@ -75,12 +75,6 @@ startup_64: > leaq _text(%rip), %rbp > subq $_text - __START_KERNEL_map, %rbp > > - /* Is the address not 2M aligned? */ > - movq %rbp, %rax > - andl $~PMD_PAGE_MASK, %eax > - testl %eax, %eax > - jnz bad_address > - > /* > * Is the address too large? > */
I think we still need to do the check, in case we came from a 64-bit bootloader that directly jumped to startup_64. However, this check can be simplified to: testl $~PMD_PAGE_MASK, %ebp jnz bad_address -- Brian Gerst