> -----Original Message----- > From: Wood Scott-B07421 > Sent: Monday, July 02, 2012 12:25 PM > To: Alexander Graf > Cc: Yoder Stuart-B08248; kvm-...@vger.kernel.org; kvm@vger.kernel.org; Tabi > Timur-B04825 > Subject: Re: [PATCH v11 8/8] PPC: Don't use hardcoded opcode for ePAPR hcall > invocation > > On 07/02/2012 12:17 PM, Alexander Graf wrote: > > > > On 02.07.2012, at 19:16, Scott Wood wrote: > > > >> On 07/02/2012 12:13 PM, Alexander Graf wrote: > >>> > >>> On 02.07.2012, at 19:10, Scott Wood wrote: > >>> > >>>> On 07/02/2012 07:30 AM, Alexander Graf wrote: > >>>>> > >>>>> On 22.06.2012, at 22:06, Stuart Yoder wrote: > >>>>> > >>>>>> From: Liu Yu-B13201 <yu....@freescale.com> > >>>>>> > >>>>>> Signed-off-by: Liu Yu <yu....@freescale.com> > >>>>>> Signed-off-by: Stuart Yoder <stuart.yo...@freescale.com> > >>>>>> --- > >>>>>> -v11: no changes > >>>>>> > >>>>>> arch/powerpc/include/asm/epapr_hcalls.h | 22 +++++++++--------- > >>>>>> arch/powerpc/include/asm/fsl_hcalls.h | 36 > >>>>>> +++++++++++++++--------------- > >>>>>> 2 files changed, 29 insertions(+), 29 deletions(-) > >>>>>> > >>>>>> diff --git a/arch/powerpc/include/asm/epapr_hcalls.h > >>>>>> b/arch/powerpc/include/asm/epapr_hcalls.h > >>>>>> index 833ce2c..b8d9445 100644 > >>>>>> --- a/arch/powerpc/include/asm/epapr_hcalls.h > >>>>>> +++ b/arch/powerpc/include/asm/epapr_hcalls.h > >>>>>> @@ -195,7 +195,7 @@ static inline unsigned int > >>>>>> ev_int_set_config(unsigned int interrupt, > >>>>>> r5 = priority; > >>>>>> r6 = destination; > >>>>>> > >>>>>> - __asm__ __volatile__ ("sc 1" > >>>>>> + asm volatile("bl epapr_hypercall_start" > >>>>>> : "+r" (r11), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6) > >>>>>> : : EV_HCALL_CLOBBERS4 > >>>>> > >>>>> Hrm. ePAPR hypercalls are allowed to clobber lr, right? But our > >>>>> hypercall entry code depends on lr > staying alive: > >>>> > >>>> ePAPR 1.1 says LR is nonvolatile. > >>> > >>> Why is it in the clobber list then? > >> > >> Because the inline assembly code is clobbering it -- not the hv-provided > >> hcall instructions. > > > > Only after the change, not before it. > > Hmm. The comment says, "XER, CTR, and LR are currently listed as > clobbers because it's uncertain whether they will be clobbered." Maybe > it dates back to when the ABI was still being discussed? Timur, do you > recall? > > In any case, LR is nonvolatile in the spec and in the implementations I > know about (KVM and Topaz).
Based on this thread I am going to leave this patch as is. Stuart