Lines Matching refs:sip
279 struct kvm_split_mode *sip = local_paca->kvm_hstate.kvm_split_mode; in kvmhv_commence_exit() local
306 if (!sip) in kvmhv_commence_exit()
310 vc = sip->vc[i]; in kvmhv_commence_exit()
329 if (sip->lpcr_req) { in kvmhv_commence_exit()
330 if (cmpxchg(&sip->do_restore, 0, 1) == 0) { in kvmhv_commence_exit()
334 if (sip->napped[t]) in kvmhv_commence_exit()
682 static void wait_for_sync(struct kvm_split_mode *sip, int phase) in wait_for_sync() argument
686 sip->lpcr_sync.phase[thr] |= phase; in wait_for_sync()
688 while ((sip->lpcr_sync.allphases & phase) != phase) { in wait_for_sync()
695 void kvmhv_p9_set_lpcr(struct kvm_split_mode *sip) in kvmhv_p9_set_lpcr() argument
700 wait_for_sync(sip, PHASE_REALMODE); in kvmhv_p9_set_lpcr()
703 mtspr(SPRN_LPCR, sip->lpcr_req); in kvmhv_p9_set_lpcr()
704 mtspr(SPRN_LPID, sip->lpidr_req); in kvmhv_p9_set_lpcr()
709 sip->do_set = 0; in kvmhv_p9_set_lpcr()
721 wait_for_sync(sip, PHASE_SET_LPCR); in kvmhv_p9_set_lpcr()
731 void kvmhv_p9_restore_lpcr(struct kvm_split_mode *sip) in kvmhv_p9_restore_lpcr() argument
734 wait_for_sync(sip, PHASE_OUT_OF_GUEST); in kvmhv_p9_restore_lpcr()
737 mtspr(SPRN_LPCR, sip->host_lpcr); in kvmhv_p9_restore_lpcr()
741 sip->do_restore = 0; in kvmhv_p9_restore_lpcr()
745 wait_for_sync(sip, PHASE_RESET_LPCR); in kvmhv_p9_restore_lpcr()