forked from Minki/linux
powerpc+sparc64/mm: Remove hack in mmap randomize layout
Since commit8a0a9bd4db
, this comment in mmap_rnd() does not hold true as the value returned by get_random_int() will in fact be different every single call. Remove the comment and simplify the code back to its original desired form. This reverts commita5adc91a4b
which is no longer necessary and also fixes the sparc code that copied this same adjustment. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
3ce21cdfe9
commit
fa8cbaaf5a
@ -53,14 +53,6 @@ static inline int mmap_is_legacy(void)
|
||||
return sysctl_legacy_va_layout;
|
||||
}
|
||||
|
||||
/*
|
||||
* Since get_random_int() returns the same value within a 1 jiffy window,
|
||||
* we will almost always get the same randomisation for the stack and mmap
|
||||
* region. This will mean the relative distance between stack and mmap will
|
||||
* be the same.
|
||||
*
|
||||
* To avoid this we can shift the randomness by 1 bit.
|
||||
*/
|
||||
static unsigned long mmap_rnd(void)
|
||||
{
|
||||
unsigned long rnd = 0;
|
||||
@ -68,11 +60,11 @@ static unsigned long mmap_rnd(void)
|
||||
if (current->flags & PF_RANDOMIZE) {
|
||||
/* 8MB for 32bit, 1GB for 64bit */
|
||||
if (is_32bit_task())
|
||||
rnd = (long)(get_random_int() % (1<<(22-PAGE_SHIFT)));
|
||||
rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT)));
|
||||
else
|
||||
rnd = (long)(get_random_int() % (1<<(29-PAGE_SHIFT)));
|
||||
rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT)));
|
||||
}
|
||||
return (rnd << PAGE_SHIFT) * 2;
|
||||
return rnd << PAGE_SHIFT;
|
||||
}
|
||||
|
||||
static inline unsigned long mmap_base(void)
|
||||
|
@ -368,11 +368,11 @@ static unsigned long mmap_rnd(void)
|
||||
if (current->flags & PF_RANDOMIZE) {
|
||||
unsigned long val = get_random_int();
|
||||
if (test_thread_flag(TIF_32BIT))
|
||||
rnd = (val % (1UL << (22UL-PAGE_SHIFT)));
|
||||
rnd = (val % (1UL << (23UL-PAGE_SHIFT)));
|
||||
else
|
||||
rnd = (val % (1UL << (29UL-PAGE_SHIFT)));
|
||||
rnd = (val % (1UL << (30UL-PAGE_SHIFT)));
|
||||
}
|
||||
return (rnd << PAGE_SHIFT) * 2;
|
||||
return rnd << PAGE_SHIFT;
|
||||
}
|
||||
|
||||
void arch_pick_mmap_layout(struct mm_struct *mm)
|
||||
|
Loading…
Reference in New Issue
Block a user