On Sun, Sep 02, 2018 at 10:32:22AM -0700, Nadav Amit wrote:
> +void __init poking_init(void)
> +{
> +     unsigned long poking_addr;
> +
> +     poking_mm = copy_init_mm();
> +     if (!poking_mm) {
> +             pr_err("x86/mm: error setting a separate poking address space");
> +             return;
> +     }
> +
> +     /*
> +      * Randomize the poking address, but make sure that the following page
> +      * will be mapped at the same PMD. We need 2 pages, so find space for 3,
> +      * and adjust the address if the PMD ends after the first one.
> +      */
> +     poking_addr = TASK_UNMAPPED_BASE +
> +             (kaslr_get_random_long("Poking") & PAGE_MASK) %
> +             (TASK_SIZE - TASK_UNMAPPED_BASE - 3 * PAGE_SIZE);
> +
> +     if (((poking_addr + PAGE_SIZE) & ~PMD_MASK) == 0)
> +             poking_addr += PAGE_SIZE;
> +}

This fails to compile for me.. I don't have kaslr_get_random_long().

Reply via email to