[PATCH v2 05/16] arm64: Remove uaccess toggle from __flush_cache_range macro

Mark Rutland mark.rutland at arm.com
Tue May 18 09:00:07 PDT 2021


On Mon, May 17, 2021 at 08:51:13AM +0100, Fuad Tabba wrote:
> The uaccess toggle isn't part of the cache maintenance operation.
> Move it directly to where it's needed.
> 
> No functional change intended.
> 
> Signed-off-by: Fuad Tabba <tabba at google.com>
> ---
>  arch/arm64/mm/cache.S | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S
> index 6babaaf34f17..d74b20cd6449 100644
> --- a/arch/arm64/mm/cache.S
> +++ b/arch/arm64/mm/cache.S
> @@ -26,9 +26,6 @@
>   *	- needs_uaccess - (macro parameter) might access user space memory
>   */
>  .macro	__flush_cache_range, needs_uaccess
> -	.if 	\needs_uaccess
> -	uaccess_ttbr0_enable x2, x3, x4
> -	.endif
>  alternative_if ARM64_HAS_CACHE_IDC
>  	dsb	ishst
>  	b	7f
> @@ -55,9 +52,6 @@ alternative_else_nop_endif
>  	invalidate_icache_by_line x0, x1, x2, x3, \needs_uaccess, 9f
>  8:	mov	x0, #0
>  1:
> -	.if	\needs_uaccess
> -	uaccess_ttbr0_disable x1, x2
> -	.endif
>  	ret
>  
>  	.if 	\needs_uaccess
> @@ -92,7 +86,9 @@ SYM_FUNC_END(__flush_icache_range)
>   *	- end     - virtual end address of region
>   */
>  SYM_FUNC_START(__flush_cache_user_range)
> +	uaccess_ttbr0_enable x2, x3, x4
>  	__flush_cache_range needs_uaccess=1
> +	uaccess_ttbr0_disable x1, x2
>  SYM_FUNC_END(__flush_cache_user_range)

The RET is still in the __flush_cache_range macro, so I don't think
we'll ever execute the uaccess_ttbr0_disable step here.

Mark.

>  
>  /*
> -- 
> 2.31.1.751.gd2f1c929bd-goog
> 



More information about the linux-arm-kernel mailing list