sparc: Fix user_addr_max() definition.
We need to use TASK_SIZE because for 64-bit tasks the value of STACK_TOP actually sits in the middle of the address space so we'll get false-negatives. Adjust the TASK_SIZE definition on sparc64 to accomodate this, in the context in which user_addr_max() is used we have the test_thread_flag() definition available but not the one for test_tsk_thread_flag(). Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
2922585b93
Коммит
c5389831cd
|
@ -42,7 +42,9 @@
|
|||
#define TASK_SIZE_OF(tsk) \
|
||||
(test_tsk_thread_flag(tsk,TIF_32BIT) ? \
|
||||
(1UL << 32UL) : ((unsigned long)-VPTE_SIZE))
|
||||
#define TASK_SIZE TASK_SIZE_OF(current)
|
||||
#define TASK_SIZE \
|
||||
(test_thread_flag(TIF_32BIT) ? \
|
||||
(1UL << 32UL) : ((unsigned long)-VPTE_SIZE))
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE)
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#endif
|
||||
|
||||
#define user_addr_max() \
|
||||
(segment_eq(get_fs(), USER_DS) ? STACK_TOP : ~0UL)
|
||||
(segment_eq(get_fs(), USER_DS) ? TASK_SIZE : ~0UL)
|
||||
|
||||
extern long strncpy_from_user(char *dest, const char __user *src, long count);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче