Hi Huacai,
On Sat, Oct 20, 2018 at 09:01:31PM +0800, Huacai Chen wrote:
By the way, not all VDSO_RANDOMIZE_SIZE can be used for vdso_base() randomization because VDSO need some room to locate itself (in this patch we reserve 64KB).
%
diff --git a/arch/mips/kernel/vdso.c b/arch/mips/kernel/vdso.c index 48a9c6b..d6232d9 100644 --- a/arch/mips/kernel/vdso.c +++ b/arch/mips/kernel/vdso.c @@ -106,7 +106,7 @@ static unsigned long vdso_base(void) base = STACK_TOP + PAGE_SIZE; if (current->flags & PF_RANDOMIZE) {
base += get_random_int() & (VDSO_RANDOMIZE_SIZE - 1);
base = PAGE_ALIGN(base); }base += get_random_int() & (VDSO_RANDOMIZE_SIZE - SZ_64K - 1);
This change in v2 is unnecessary - STACK_TOP already accounts for the size of the VDSO, so we don't need to leave space for it a second time here.
v1 of your patch is in mips-fixes, which I'll submit a pull request for soon.
Thanks, Paul