Merge remote-tracking branch 'lsk/linux-linaro-lsk-v4.4-android' into linux-linaro...
[firefly-linux-kernel-4.4.55.git] / arch / x86 / mm / mmap.c
index 844b06d67df4da95cec611375d55c05d52884efd..96bd1e2bffafb3b8ffbc28906a2998ad992d50e8 100644 (file)
@@ -69,14 +69,14 @@ unsigned long arch_mmap_rnd(void)
 {
        unsigned long rnd;
 
-       /*
-        *  8 bits of randomness in 32bit mmaps, 20 address space bits
-        * 28 bits of randomness in 64bit mmaps, 40 address space bits
-        */
        if (mmap_is_ia32())
-               rnd = (unsigned long)get_random_int() % (1<<8);
+#ifdef CONFIG_COMPAT
+               rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_compat_bits) - 1);
+#else
+               rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1);
+#endif
        else
-               rnd = (unsigned long)get_random_int() % (1<<28);
+               rnd = (unsigned long)get_random_int() & ((1 << mmap_rnd_bits) - 1);
 
        return rnd << PAGE_SHIFT;
 }