[lkml]   [2015]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH v2 4/9] introduce struct slot_area to manage randomization slot info
    Kernel is expected to be randomly reloaded anywhere in the whole
    physical memory area, it could be near 64T at most. In this case
    there could be about 4*1024*1024 randomization slots. Hence the
    old slot array will cost too much memory and can not be used any

    Here introduce struct slot_area to manage randomization slot info
    in one contiguous memory area excluding the avoid area. slot_areas
    is used to store all slot area info. Since setup_data is a linked
    list, could contain many datas by pointer to point one by one,
    excluding them will split RAM memory into many smaller areas, here
    only take the first 100 slot areas if too many of them.

    Signed-off-by: Baoquan He <>
    arch/x86/boot/compressed/aslr.c | 12 ++++++++++++
    1 file changed, 12 insertions(+)

    diff --git a/arch/x86/boot/compressed/aslr.c b/arch/x86/boot/compressed/aslr.c
    index 6a22129..26610a2 100644
    --- a/arch/x86/boot/compressed/aslr.c
    +++ b/arch/x86/boot/compressed/aslr.c
    @@ -215,8 +215,20 @@ static bool mem_avoid_overlap(struct mem_vector *img)

    static unsigned long slots[CONFIG_RANDOMIZE_BASE_MAX_OFFSET /
    +struct slot_area {
    + unsigned long addr;
    + int num;
    +#define MAX_SLOT_AREA 100
    +static struct slot_area slot_areas[MAX_SLOT_AREA];
    static unsigned long slot_max;

    +static unsigned long slot_area_index;
    static void slots_append(unsigned long addr)
    /* Overflowing the slots list should be impossible. */

     \ /
      Last update: 2015-03-02 16:21    [W:4.011 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site