[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170630061423.GA13433@dhcp-128-65.nay.redhat.com>
Date: Fri, 30 Jun 2017 14:14:23 +0800
From: Dave Young <dyoung@...hat.com>
To: Baoquan He <bhe@...hat.com>
Cc: mingo@...nel.org, linux-kernel@...r.kernel.org, tglx@...utronix.de,
hpa@...or.com
Subject: Re: [PATCH v2 0/2] x86/boot/KASLR: Code bug fix about kernel virtual
address randomization
On 06/27/17 at 08:39pm, Baoquan He wrote:
> People complained that crashkernel high doesn't work when kaslr code
> compiled in but add 'nokaslr' to diable it. Kexec has the same
> phenomenon.
This is a regression, with 4.12* kernel kexec reboot fails always on
my desktop pc now without kaslr being enabled.
>
> The root cause is a code bug which assigned the original loading address
> of kernel to the local variable 'virt_addr' which represents the offset
> of kernel virtual address randmoization. As we know, kernel can be loaded
> to anywhere under 64T physically, this wrong assignment could cause kernel
> relocation handling of x86 64 error if no kaslr is taken.
>
> The v1 post can be found here:
> x86/boot/KASLR: Skip relocation handling in no kaslr case
> https://patchwork.kernel.org/patch/9807789/
>
> In v2, Ingo suggested that we should add a judgement to check if 'virt_addr'
> is randomized to make kernel beyond the kernel mapping area. This checking
> can let us know the error but not reset to firmware quietly as it does now.
>
> Baoquan He (2):
> x86/boot/KASLR: Add checking for the offset of kernel virtual address
> randomization
> x86/boot/KASLR: Fix the wrong assignment to 'virt_addr'
>
> arch/x86/boot/compressed/kaslr.c | 3 ---
> arch/x86/boot/compressed/misc.c | 6 ++++--
> arch/x86/boot/compressed/misc.h | 2 --
> 3 files changed, 4 insertions(+), 7 deletions(-)
>
> --
> 2.5.5
>
Powered by blists - more mailing lists