Subject: [PATCH 3/4] arm64: LLVMLinux: Calculate current_thread_info from current_stack_pointer

From: [email-masked] (Andreas Färber)
Date: Thu, 31 Jul 2014 07:31:30 +0200

Hi,

Am 31.07.2014 01:57, schrieb behanw at converseincode.com:
> From: Behan Webster <[email-masked]>
> 
> Use the global current_stack_pointer to get the value of the stack pointer.
> This change supports being able to compile the kernel with both gcc and clang.
> 
> Signed-off-by: Behan Webster <[email-masked]>
> Signed-off-by: Mark Charlebois <[email-masked]>
> Reviewed-by: Jan-Simon M??ller <[email-masked]>

Something went wrong with ? encoding here and in 2/4.

> ---
>  arch/arm64/include/asm/thread_info.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/thread_info.h b/arch/arm64/include/asm/thread_info.h
> index e6b6094..c2432d2 100644
> --- a/arch/arm64/include/asm/thread_info.h
> +++ b/arch/arm64/include/asm/thread_info.h
> @@ -80,8 +80,8 @@ static inline struct thread_info *current_thread_info(void) __attribute_const__;
>  
>  static inline struct thread_info *current_thread_info(void)
>  {
> -	register unsigned long sp asm ("sp");
> -	return (struct thread_info *)(sp & ~(THREAD_SIZE - 1));
> +	return (struct thread_info *) \

This is not a macro, so \ seems superfluous.

Looks okay otherwise.

Regards,
Andreas

> +		(current_stack_pointer & ~(THREAD_SIZE - 1));
>  }
>  
>  #define thread_saved_pc(tsk)	\

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg