Skip to content

Commit

Permalink
sparc: Fix user_addr_max() definition.
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
davem330 committed May 24, 2012
1 parent 2922585 commit c538983
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
4 changes: 3 additions & 1 deletion arch/sparc/include/asm/processor_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion arch/sparc/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit c538983

Please sign in to comment.