Messages in this thread | | | Date | Thu, 6 Sep 2018 11:01:42 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 4/6] x86/alternatives: initializing temporary mm for patching |
| |
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().
| |