提交 76a06dbe 编写于 作者: C Chen Jiahao 提交者: Zheng Zengkai

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: NChen Jiahao <chenjiahao16@huawei.com>
Signed-off-by: NZhen Lei <thunder.leizhen@huawei.com>
Reviewed-by: NHanjun Guo <guohanjun@huawei.com>
Reviewed-by: NChang Liao <liaochang1@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 0eea0a34
...@@ -47,9 +47,10 @@ ...@@ -47,9 +47,10 @@
#define DEFAULT_MAP_WINDOW_64 (UL(1) << VA_BITS_MIN) #define DEFAULT_MAP_WINDOW_64 (UL(1) << VA_BITS_MIN)
#define TASK_SIZE_64 (UL(1) << vabits_actual) #define TASK_SIZE_64 (UL(1) << vabits_actual)
#define TASK_SIZE_MAX (UL(1) << VA_BITS)
#ifdef CONFIG_COMPAT #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) #if defined(CONFIG_ARM64_64K_PAGES) && defined(CONFIG_KUSER_HELPERS)
/* /*
* With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied * With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied
...@@ -66,6 +67,7 @@ ...@@ -66,6 +67,7 @@
#define DEFAULT_MAP_WINDOW (is_compat_task() ? \ #define DEFAULT_MAP_WINDOW (is_compat_task() ? \
TASK_SIZE_32 : DEFAULT_MAP_WINDOW_64) TASK_SIZE_32 : DEFAULT_MAP_WINDOW_64)
#else #else
#define TASK_SIZE_MAX (UL(1) << VA_BITS)
#define TASK_SIZE TASK_SIZE_64 #define TASK_SIZE TASK_SIZE_64
#define DEFAULT_MAP_WINDOW DEFAULT_MAP_WINDOW_64 #define DEFAULT_MAP_WINDOW DEFAULT_MAP_WINDOW_64
#endif /* CONFIG_COMPAT */ #endif /* CONFIG_COMPAT */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册