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.Liu@xxxxxxxxxxxxx> >>>>>> >>>>>> Signed-off-by: Liu Yu <yu.liu@xxxxxxxxxxxxx> >>>>>> Signed-off-by: Stuart Yoder <stuart.yoder@xxxxxxxxxxxxx> >>>>>> --- >>>>>> -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). -Scott -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html