Commit 76a06dbe authored by Chen Jiahao's avatar Chen Jiahao Committed by Zheng Zengkai
Browse files

arm64: fix address limit problem with TASK_SIZE_MAX

hulk inclusion
category: bugfix
bugzilla: 51408 https://e.gitee.com/open_euler/issues/list?issue=I4SCW7


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>
parent 0eea0a34
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -47,9 +47,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
@@ -66,6 +67,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 */