aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/mm/mmap.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-02-10 18:26:26 +0000
committerMark Brown <broonie@kernel.org>2016-02-10 18:26:26 +0000
commitb388b35a17d53dac58f2391795b823b7c5a54bac (patch)
treea8db4b571297771e191489abeede06514fe94fd3 /arch/arm64/mm/mmap.c
parent6b4fe72f6c1ab93a893a8bc2e1155d34d7689440 (diff)
parent17aa01a7059b202f893a9e7e859032640318b458 (diff)
Merge branch 'linaro-android-3.18-lsk' of git://android.git.linaro.org/kernel/linaro-android into linux-linaro-lsk-v3.18-androidlsk-v3.18-16.02-android
Diffstat (limited to 'arch/arm64/mm/mmap.c')
-rw-r--r--arch/arm64/mm/mmap.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
index 54922d1275b8..a822f7d670e2 100644
--- a/arch/arm64/mm/mmap.c
+++ b/arch/arm64/mm/mmap.c
@@ -51,9 +51,14 @@ static unsigned long mmap_rnd(void)
{
unsigned long rnd = 0;
- if (current->flags & PF_RANDOMIZE)
- rnd = (long)get_random_int() & STACK_RND_MASK;
-
+ if (current->flags & PF_RANDOMIZE) {
+#ifdef CONFIG_COMPAT
+ if (test_thread_flag(TIF_32BIT))
+ rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_compat_bits) - 1);
+ else
+#endif
+ rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1);
+ }
return rnd << PAGE_SHIFT;
}