[PATCH] powerpc32: memcpy: only use dcbz once cache is enabled

David Laight David.Laight at ACULAB.COM
Tue Sep 8 01:04:56 AEST 2015


From: Christophe Leroy
> Sent: 07 September 2015 15:25
...
> diff --git a/arch/powerpc/lib/copy_32.S b/arch/powerpc/lib/copy_32.S
> index 2ef50c6..05b3096 100644
> --- a/arch/powerpc/lib/copy_32.S
> +++ b/arch/powerpc/lib/copy_32.S
> @@ -172,7 +172,16 @@ _GLOBAL(memcpy)
>  	mtctr	r0
>  	beq	63f
>  53:
> -	dcbz	r11,r6
> +	/*
> +	 * During early init, cache might not be active yet, so dcbz cannot be
> +	 * used. We put dcbt instead of dcbz. If cache is not active, it's just
> +	 * like a not. If cache is active, at least it prefetchs the line to be
                ^^^ nop ??

	David

> +	 * overwritten.
> +	 * Will be replaced by dcbz in machine_init()
> +	 */
> +_GLOBAL(ppc32_memcpy_dcbz)
> +	dcbt	r11,r6
> +
>  	COPY_16_BYTES
>  #if L1_CACHE_BYTES >= 32
>  	COPY_16_BYTES
> --
> 2.1.0



More information about the Linuxppc-dev mailing list