[PATCH v4 3/3] KVM: PPC: epapr: install ev_idle hcall for e500 guest
Scott Wood
scottwood at freescale.com
Fri Feb 17 03:58:06 EST 2012
On 02/16/2012 04:24 AM, Alexander Graf wrote:
> On 16.02.2012, at 10:26, Liu Yu <yu.liu at freescale.com> wrote:
>> +_GLOBAL(epapr_ev_idle)
>> +epapr_ev_idle:
>> + rlwinm r3,r1,0,0,31-THREAD_SHIFT /* current thread_info */
>> + lwz r4,TI_LOCAL_FLAGS(r3) /* set napping bit */
>> + ori r4,r4,_TLF_NAPPING /* so when we take an exception */
>> + stw r4,TI_LOCAL_FLAGS(r3) /* it will return to our caller */
>> +
>> + wrteei 1
>> +
>> +idle_loop:
>> + LOAD_REG_IMMEDIATE(r11, HC_VENDOR_EPAPR | HC_EV_IDLE)
>> +
>> +.global epapr_ev_idle_start
>> +epapr_ev_idle_start:
>> + li r3, -1
>> + nop
>> + nop
>> + nop
>
> Can't you just bl into epapr_hypercall_start? You don't even have to save the old lr. because we never return anyways :)
The interrupt will branch to LR, so no, we can't trash it or put it
anywhere else.
-scott
More information about the Linuxppc-dev
mailing list