lkml.org 
[lkml]   [2017]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH v2 0/3] Handle memmap and mem kernel options in boot stage kaslr
Date
People reported kernel panic occurs during system boots up with mem boot option.
After checking code, several problems are found about memmap= and mem= in boot stage
kaslr.

*) In commit f28442497b5c ("x86/boot: Fix KASLR and memmap= collision"), only one memmap
entry is considered and only the last one if multiple memmap entries are specified.

*) mem= and memmap=nn[KMG] are not considered yet. They are used to limit max address
of system. Kernel can't be randomized to be above the limit.

*) kernel-parameters.txt doesn't tell the updated behaviour of memmap=.

This patchset tries to solve above issues.

Changelog:
v1->v2

a)
The original patch 1/4 has been put in tip:x86/boot and no update,
so it's not included in this post.

b)
Use patch log Ingo reorganized.

c)
lib/ctype.c and lib/cmdline.c are needed for kaslr.c, while those
EXPORT_SYMBOL(x) contained caused failure of build on 32-bit allmodconfig:
......
ld: -r and -shared may not be used together
scripts/Makefile.build:294: recipe for target 'arch/x86/boot/compressed/kaslr.o' failed
......
Disabling the symbol exporting removes the build failure.

d)
Use dynamic allocation to allocate memory to contain copied kernel cmdline
buffer, it's implemented in include/linux/decompress/mm.h.

e)
This patchset sits on top of tip:x86/boot branch.

Baoquan He (3):
KASLR: Parse all memmap entries in cmdline
KASLR: Handle memory limit specified by memmap and mem option
Documentation/kernel-parameters.txt: Update 'memmap=' option
description

Documentation/admin-guide/kernel-parameters.txt | 9 ++
arch/x86/boot/compressed/cmdline.c | 2 +-
arch/x86/boot/compressed/kaslr.c | 185 +++++++++++++++---------
arch/x86/boot/string.c | 8 +
4 files changed, 138 insertions(+), 66 deletions(-)

--
2.5.5

\
 
 \ /
  Last update: 2017-04-24 04:42    [W:0.086 / U:0.960 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site