Commit 15202ed1 authored by Chen Jiahao's avatar Chen Jiahao Committed by Jinjie Ruan
Browse files

arm64: fix address limit problem with TASK_SIZE_MAX

hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I8JVJ3


CVE: NA

-------------------------------------------------------------------------

In commit e29beeac53c8 ("arm64: uaccess: remove set_fs()"),
thread_info->addr_limit and macro USER_DS has been removed and replace
by macro TASK_SIZE_MAX. However the address limit set by TASK_SIZE_MAX
is incorrect in compat mode, see commit 2ef73d5148e ("[Huawei] arm64: fix
current_thread_info()->addr_limit setup") for detail.

Fix the problem by modifying TASK_SIZE_MAX definition in compat mode.

Signed-off-by: default avatarChen Jiahao <chenjiahao16@huawei.com>
Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
Reviewed-by: default avatarChang Liao <liaochang1@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
Signed-off-by: default avatarJinjie Ruan <ruanjinjie@huawei.com>
parent 2d3209d1
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -53,9 +53,10 @@

#define DEFAULT_MAP_WINDOW_64	(UL(1) << VA_BITS_MIN)
#define TASK_SIZE_64		(UL(1) << vabits_actual)
#define TASK_SIZE_MAX		(UL(1) << VA_BITS)

#ifdef CONFIG_COMPAT
#define TASK_SIZE_MAX		(is_compat_task() ? \
				UL(0x100000000) : (UL(1) << VA_BITS))
#if defined(CONFIG_ARM64_64K_PAGES) && defined(CONFIG_KUSER_HELPERS)
/*
 * With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied
@@ -72,6 +73,7 @@
#define DEFAULT_MAP_WINDOW	(is_compat_task() ? \
				TASK_SIZE_32 : DEFAULT_MAP_WINDOW_64)
#else
#define TASK_SIZE_MAX		(UL(1) << VA_BITS)
#define TASK_SIZE		TASK_SIZE_64
#define DEFAULT_MAP_WINDOW	DEFAULT_MAP_WINDOW_64
#endif /* CONFIG_COMPAT */