Remove two unused arch_within_stack_frames() arguments: 'stack' and 'stackend'. The x86 unwinder already knows how to find the stack bounds, and that's generally the case for other arch unwinders as well.
Signed-off-by: Josh Poimboeuf <[email protected]> --- arch/x86/include/asm/thread_info.h | 8 ++------ arch/x86/lib/usercopy.c | 4 +--- include/linux/thread_info.h | 4 +--- mm/usercopy.c | 3 +-- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index 0f27e04..530789b 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -178,14 +178,10 @@ static inline unsigned long current_stack_pointer(void) #ifdef CONFIG_HARDENED_USERCOPY #ifdef CONFIG_FRAME_POINTER -int arch_within_stack_frames(const void * const stack, - const void * const stackend, - void *first_frame, +int arch_within_stack_frames(void *first_frame, const void *obj, unsigned long len); #else -static inline int arch_within_stack_frames(const void * const stack, - const void * const stackend, - void *first_frame +static inline int arch_within_stack_frames(void *first_frame, const void *obj, unsigned long len) { return 0; diff --git a/arch/x86/lib/usercopy.c b/arch/x86/lib/usercopy.c index fe0b233..3045da7 100644 --- a/arch/x86/lib/usercopy.c +++ b/arch/x86/lib/usercopy.c @@ -46,9 +46,7 @@ EXPORT_SYMBOL_GPL(copy_from_user_nmi); * -1 if placed across a frame boundary (or outside stack) * 0 unable to determine (no frame pointers, etc) */ -int arch_within_stack_frames(const void * const stack, - const void * const stackend, - void *first_frame, +int arch_within_stack_frames(void *first_frame, const void *obj, unsigned long len) { struct unwind_state state; diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h index aa58813..74d99e2 100644 --- a/include/linux/thread_info.h +++ b/include/linux/thread_info.h @@ -106,9 +106,7 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag) #define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) #ifndef CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES -static inline int arch_within_stack_frames(const void * const stack, - const void * const stackend, - void *first_frame, +static inline int arch_within_stack_frames(void *first_frame, const void *obj, unsigned long len) { return 0; diff --git a/mm/usercopy.c b/mm/usercopy.c index 359249c..7b2585a 100644 --- a/mm/usercopy.c +++ b/mm/usercopy.c @@ -58,8 +58,7 @@ static __always_inline int check_stack_object(const void *obj, * Starting with the caller's stack frame, check if the object * is safely within a valid frame. */ - ret = arch_within_stack_frames(stack, stackend, - __builtin_frame_address(0), obj, len); + ret = arch_within_stack_frames(__builtin_frame_address(0), obj, len); if (ret) return ret; -- 2.7.4

