[v15,7/7] arm64: Drop unneeded stackleak_check_alloca()
diff mbox series

Message ID 1534457824-7211-8-git-send-email-alex.popov@linux.com
State New
Headers show
Series
  • Introduce the STACKLEAK feature and a test for it
Related show

Commit Message

Alexander Popov Aug. 16, 2018, 10:17 p.m. UTC
Drop stackleak_check_alloca() for arm64 since the STACKLEAK gcc plugin now
doesn't track stack depth overflow caused by alloca().

Signed-off-by: Alexander Popov <alex.popov@linux.com>
---
 arch/arm64/kernel/process.c | 22 ----------------------
 1 file changed, 22 deletions(-)

Comments

Will Deacon Aug. 17, 2018, 9:28 a.m. UTC | #1
On Fri, Aug 17, 2018 at 01:17:04AM +0300, Alexander Popov wrote:
> Drop stackleak_check_alloca() for arm64 since the STACKLEAK gcc plugin now
> doesn't track stack depth overflow caused by alloca().
> 
> Signed-off-by: Alexander Popov <alex.popov@linux.com>
> ---
>  arch/arm64/kernel/process.c | 22 ----------------------
>  1 file changed, 22 deletions(-)

Acked-by: Will Deacon <will.deacon@arm.com>

Thanks,

Will

> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
> index 7f1628e..740b31f 100644
> --- a/arch/arm64/kernel/process.c
> +++ b/arch/arm64/kernel/process.c
> @@ -493,25 +493,3 @@ void arch_setup_new_exec(void)
>  {
>  	current->mm->context.flags = is_compat_task() ? MMCF_AARCH32 : 0;
>  }
> -
> -#ifdef CONFIG_GCC_PLUGIN_STACKLEAK
> -void __used stackleak_check_alloca(unsigned long size)
> -{
> -	unsigned long stack_left;
> -	unsigned long current_sp = current_stack_pointer;
> -	struct stack_info info;
> -
> -	BUG_ON(!on_accessible_stack(current, current_sp, &info));
> -
> -	stack_left = current_sp - info.low;
> -
> -	/*
> -	 * There's a good chance we're almost out of stack space if this
> -	 * is true. Using panic() over BUG() is more likely to give
> -	 * reliable debugging output.
> -	 */
> -	if (size >= stack_left)
> -		panic("alloca() over the kernel stack boundary\n");
> -}
> -EXPORT_SYMBOL(stackleak_check_alloca);
> -#endif
> -- 
> 2.7.4
>

Patch
diff mbox series

diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 7f1628e..740b31f 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -493,25 +493,3 @@  void arch_setup_new_exec(void)
 {
 	current->mm->context.flags = is_compat_task() ? MMCF_AARCH32 : 0;
 }
-
-#ifdef CONFIG_GCC_PLUGIN_STACKLEAK
-void __used stackleak_check_alloca(unsigned long size)
-{
-	unsigned long stack_left;
-	unsigned long current_sp = current_stack_pointer;
-	struct stack_info info;
-
-	BUG_ON(!on_accessible_stack(current, current_sp, &info));
-
-	stack_left = current_sp - info.low;
-
-	/*
-	 * There's a good chance we're almost out of stack space if this
-	 * is true. Using panic() over BUG() is more likely to give
-	 * reliable debugging output.
-	 */
-	if (size >= stack_left)
-		panic("alloca() over the kernel stack boundary\n");
-}
-EXPORT_SYMBOL(stackleak_check_alloca);
-#endif