lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 20 Feb 2015 15:53:12 -0800
From:	Yinghai Lu <yinghai@...nel.org>
To:	Baoquan He <bhe@...hat.com>
Cc:	"H. Peter Anvin" <hpa@...or.com>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] x86, boot: Allow 64bit EFI kernel to be loaded above 4G

On Fri, Feb 20, 2015 at 1:28 AM, Baoquan He <bhe@...hat.com> wrote:
>
> Actually kexec is a bootloader which can put kernel at any address. This
> is done in user space program kexec-tools. However kexec-tools make
> kernel jump from 64bit into 64bit directly, and has built ident mapping
> of whole physical memory. I have tried this and it works. kexec is
> mainly used for kernel developer, kaslr is meaningless for kexec.
>
> However kaslr focus on normal kernel, and jump from 32bit to 64bit mode.
> I can't figure out a way to work around this.
>
> Now I just want to figure out what register setting cause GPF when
> reload kernel above 4G in this jumping from 32bit to 64bit way.

Then you are not setting  the ident mapping correctly.

you should make sure add extra ident mapping for the new [output,
output+output_len - 1].
bootloader only cover old [output, output+output_len - 1]

and you should check if the mapping is present before add new one,
otherwise will overrite
the one from 64bit bootloader like kexec-tools or grub2-x86_64 etc.

You could use kernel_ident_mapping_init() from arch/x86/mm/init_64.c
--- may need to cut and paste or split and include to
arch/x86/boot/compressed/misc.c
also you need to find some pages for alloc_pgt_page.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ