Messages in this thread | | | Date | Fri, 30 Jun 2017 14:14:23 +0800 | From | Dave Young <> | 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 >
| |