Mips uses TASK_IS_32BIT_ADDR to determine if a task is 32bit, but
this define is mips specific and other arches do not have it: instead,
use !IS_ENABLED(CONFIG_64BIT) || is_compat_task() condition.

Signed-off-by: Alexandre Ghiti <a...@ghiti.fr>
Acked-by: Paul Burton <paul.bur...@mips.com>
Reviewed-by: Kees Cook <keesc...@chromium.org>
Reviewed-by: Luis Chamberlain <mcg...@kernel.org>
---
 arch/mips/mm/mmap.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
index ff6ab87e9c56..d5106c26ac6a 100644
--- a/arch/mips/mm/mmap.c
+++ b/arch/mips/mm/mmap.c
@@ -17,6 +17,7 @@
 #include <linux/sched/signal.h>
 #include <linux/sched/mm.h>
 #include <linux/sizes.h>
+#include <linux/compat.h>
 
 unsigned long shm_align_mask = PAGE_SIZE - 1;  /* Sane caches */
 EXPORT_SYMBOL(shm_align_mask);
@@ -191,7 +192,7 @@ static inline unsigned long brk_rnd(void)
 
        rnd = rnd << PAGE_SHIFT;
        /* 32MB for 32bit, 1GB for 64bit */
-       if (TASK_IS_32BIT_ADDR)
+       if (!IS_ENABLED(CONFIG_64BIT) || is_compat_task())
                rnd = rnd & (SZ_32M - 1);
        else
                rnd = rnd & (SZ_1G - 1);
-- 
2.20.1

Reply via email to