On 2026-07-01 23:57:56 Wed, Nikhil Kumar Singh wrote:
> The value loaded into r0 in copy_and_flush() represents the number of
> 8-byte words processed between cache synchronization operations.
> 
> The existing comment refers to cache line size, which can make it appear
> that the value is a cache line size in bytes rather than a loop count.
> Clarify the comment to explain that the loop processes 8 words (64 bytes)
> per cache synchronization iteration, and that increasing the value would
> skip cache maintenance for intermediate cache lines.
> 
> This is a comment-only change with no functional impact.
> 
> Signed-off-by: Nikhil Kumar Singh <[email protected]>
> ---
>  arch/powerpc/kernel/head_64.S | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
> index 63432a33ec49..e21c2bce8f7e 100644
> --- a/arch/powerpc/kernel/head_64.S
> +++ b/arch/powerpc/kernel/head_64.S
> @@ -713,14 +713,14 @@ p_end: .8byte _end - copy_to_here
>  _GLOBAL(copy_and_flush)
>       addi    r5,r5,-8
>       addi    r6,r6,-8
> -4:   li      r0,8                    /* Use the smallest common      */
> -                                     /* denominator cache line       */
> -                                     /* size.  This results in       */
> -                                     /* extra cache line flushes     */
> -                                     /* but operation is correct.    */
> -                                     /* Can't get cache line size    */
> -                                     /* from NACA as it is being     */
> -                                     /* moved too.                   */
> +4:   li      r0,8                    /* r0 is the number of 8-byte words     
>   */
> +                                     /* to copy per cache sync iteration.    
>   */
> +                                     /* 8 words * 8 bytes = 64 bytes. 64B is 
>   */
> +                                     /* the current default cache line size. 
>   */
> +                                     /* This is a loop count, not a byte     
>   */
> +                                     /* count. Increasing it will skip       
>   */
> +                                     /* dcbst/icbi for lines in between and  
>   */
> +                                     /* leave stale instructions in icache.  
>   */

Looks good to me. The previous comment was misleading which makes one to
think r0 as cache line size which is not the case.

Reviewed-by: Mahesh Salgaonkar <[email protected]>

Thanks,
-Mahesh.

Reply via email to