On 02/16/2012 04:24 AM, Alexander Graf wrote: > On 16.02.2012, at 10:26, Liu Yu <yu.liu@xxxxxxxxxxxxx> 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 -- 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