Subject: Re: [PATCH] powerpc: Fix sldi to take literal not register name

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 08 Jun 2012 10:19:37 +1000

On Fri, 2012-06-08 at 09:52 +1000, Michael Neuling wrote:
> Fix sldi to take literal not register name.
> 
> Was introduced by:
>  commit 19ccb76a1938ab364a412253daec64613acbf3df
>  Author: Paul Mackerras <[email-masked]>
>  Date:   Sat Jul 23 17:42:46 2011 +1000
> 
> Signed-off-by: Michael Neuling <[email-masked]>
> ---
> I got sick off the bike-shedding in a vacuum and started doing the
> conversion.  Found this as a result.
> 
> I'll post the full conversion at some point, but this fix is useful
> now.  

Euh... except that:

> diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> index a84aafc..969caeb 100644
> --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> @@ -810,7 +810,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201)
>  	lwz	r3,VCORE_NAPPING_THREADS(r5)
>  	lwz	r4,VCPU_PTID(r9)
>  	li	r0,1
> -	sldi	r0,r0,r4
> +	sldi	r0,r0,4

Isn't the right fix s/sldi/sld and keep r4 ?

IE. I think Paul meant to shift 1 by the TID not shift 1 by 4

Cheers,
Ben.

>  	andc.	r3,r3,r0		/* no sense IPI'ing ourselves */
>  	beq	43f
>  	mulli	r4,r4,PACA_SIZE		/* get paca for thread 0 */