On 12/08/16 at 02:00pm, Dave Anderson wrote:
> 
> 
> ----- Original Message -----
> > On Wed, Dec 7, 2016 at 11:56 PM, Baoquan He <b...@redhat.com> wrote:
> > > Dave Anderson ever told in Crash utility he makes judgement whether it's
> > > a kaslr kernel by size of KERNEL_IMAGE_SIZE. As long as it's 1G, it's
> > > recognized as kaslr. Then the current upstream kernel has a wrong 
> > > behaviour,
> > > it sets KERNEL_IMAGE_SIZE as 1G as long as CONFIG_RANDOMIZE_BASE is 
> > > enabled,
> > > though people specify "nokaslr" into cmdline to disable kaslr explicitly.
> > 
> > I'm not sure that's the correct solution to the Crash utility -- the
> > kaslr-ness of a kernel should be already exposed in the dump with the
> > kaslr_enabled variable yes?
> 
> The crash utility doesn't use KERNEL_IMAGE_SIZE to determine whether
> KASLR is in play, but rather to determine the base of the modules virtual
> address space (i.e, the same way the kernel does).  And then it uses that
> value in a couple other places.

Then I got it wrong.

The current code makes it the same:

#define MODULES_VADDR    (__START_KERNEL_map + KERNEL_IMAGE_SIZE)

With change, Crash doesn't need to change.

Thanks
Baoquan

> 
> 
> > 
> > > So in this patchset, made changes to determine the size of kernel text
> > > mapping
> > > area at runtime. If "nokaslr" specified, kernel mapping size is 512M 
> > > though
> > > CONFIG_RANDOMIZE_BASE is enabled.
> > 
> > This seems to make the non-KASLR case more consistent, so I'm fine
> > with the idea. Once the build-bots are happy with everything, consider
> > the series:
> > 
> > Acked-by: Kees Cook <keesc...@chromium.org>
> > 
> > Thanks!
> > 
> > -Kees
> > 
> > >
> > > Baoquan He (2):
> > >   x86/64: Make kernel text mapping always take one whole page table in
> > >     early boot code
> > >   x86/KASLR/64: Determine kernel text mapping size at runtime
> > >
> > >  arch/x86/boot/compressed/kaslr.c        | 15 ++++++++++-----
> > >  arch/x86/include/asm/kaslr.h            |  1 +
> > >  arch/x86/include/asm/page_64_types.h    | 20 ++++++++++++--------
> > >  arch/x86/include/asm/pgtable_64_types.h |  2 +-
> > >  arch/x86/kernel/head64.c                | 11 ++++++-----
> > >  arch/x86/kernel/head_64.S               | 16 +++++++++-------
> > >  arch/x86/mm/dump_pagetables.c           |  3 ++-
> > >  arch/x86/mm/init_64.c                   |  2 +-
> > >  arch/x86/mm/physaddr.c                  |  6 +++---
> > >  9 files changed, 45 insertions(+), 31 deletions(-)
> > >
> > > --
> > > 2.5.5
> > >
> > 
> > 
> > 
> > --
> > Kees Cook
> > Nexus Security
> > 

Reply via email to