Lines Matching refs:vcpu_e500
124 static void *kvmppc_e500_id_table_alloc(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_id_table_alloc() argument
126 vcpu_e500->idt = kzalloc(sizeof(struct vcpu_id_table), GFP_KERNEL); in kvmppc_e500_id_table_alloc()
127 return vcpu_e500->idt; in kvmppc_e500_id_table_alloc()
130 static void kvmppc_e500_id_table_free(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_id_table_free() argument
132 kfree(vcpu_e500->idt); in kvmppc_e500_id_table_free()
133 vcpu_e500->idt = NULL; in kvmppc_e500_id_table_free()
140 static void kvmppc_e500_recalc_shadow_pid(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_recalc_shadow_pid() argument
143 vcpu_e500->vcpu.arch.shadow_pid = kvmppc_e500_get_sid(vcpu_e500, in kvmppc_e500_recalc_shadow_pid()
144 get_cur_as(&vcpu_e500->vcpu), in kvmppc_e500_recalc_shadow_pid()
145 get_cur_pid(&vcpu_e500->vcpu), in kvmppc_e500_recalc_shadow_pid()
146 get_cur_pr(&vcpu_e500->vcpu), 1); in kvmppc_e500_recalc_shadow_pid()
147 vcpu_e500->vcpu.arch.shadow_pid1 = kvmppc_e500_get_sid(vcpu_e500, in kvmppc_e500_recalc_shadow_pid()
148 get_cur_as(&vcpu_e500->vcpu), 0, in kvmppc_e500_recalc_shadow_pid()
149 get_cur_pr(&vcpu_e500->vcpu), 1); in kvmppc_e500_recalc_shadow_pid()
154 static void kvmppc_e500_id_table_reset_all(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_id_table_reset_all() argument
156 memset(vcpu_e500->idt, 0, sizeof(struct vcpu_id_table)); in kvmppc_e500_id_table_reset_all()
159 kvmppc_e500_recalc_shadow_pid(vcpu_e500); in kvmppc_e500_id_table_reset_all()
164 struct kvmppc_vcpu_e500 *vcpu_e500, in kvmppc_e500_id_table_reset_one() argument
167 struct vcpu_id_table *idt = vcpu_e500->idt; in kvmppc_e500_id_table_reset_one()
177 kvmppc_e500_recalc_shadow_pid(vcpu_e500); in kvmppc_e500_id_table_reset_one()
189 unsigned int kvmppc_e500_get_sid(struct kvmppc_vcpu_e500 *vcpu_e500, in kvmppc_e500_get_sid() argument
193 struct vcpu_id_table *idt = vcpu_e500->idt; in kvmppc_e500_get_sid()
212 kvmppc_e500_recalc_shadow_pid(vcpu_e500); in kvmppc_e500_get_sid()
227 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_set_pid() local
230 vcpu_e500->pid[0] = vcpu->arch.pid = pid; in kvmppc_set_pid()
231 kvmppc_e500_recalc_shadow_pid(vcpu_e500); in kvmppc_set_pid()
236 void kvmppc_e500_tlbil_one(struct kvmppc_vcpu_e500 *vcpu_e500, in kvmppc_e500_tlbil_one() argument
239 struct vcpu_id_table *idt = vcpu_e500->idt; in kvmppc_e500_tlbil_one()
262 kvmppc_e500_id_table_reset_one(vcpu_e500, ts, tid, pr); in kvmppc_e500_tlbil_one()
291 void kvmppc_e500_tlbil_all(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_tlbil_all() argument
293 kvmppc_e500_id_table_reset_all(vcpu_e500); in kvmppc_e500_tlbil_all()
340 static void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_tlb_setup() argument
345 tlbe = get_entry(vcpu_e500, 1, 0); in kvmppc_e500_tlb_setup()
351 tlbe = get_entry(vcpu_e500, 1, 1); in kvmppc_e500_tlb_setup()
359 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_setup() local
361 kvmppc_e500_tlb_setup(vcpu_e500); in kvmppc_core_vcpu_setup()
365 vcpu_e500->svr = mfspr(SPRN_SVR); in kvmppc_core_vcpu_setup()
375 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_get_sregs_e500() local
382 sregs->u.e.impl.fsl.svr = vcpu_e500->svr; in kvmppc_core_get_sregs_e500()
383 sregs->u.e.impl.fsl.hid0 = vcpu_e500->hid0; in kvmppc_core_get_sregs_e500()
384 sregs->u.e.impl.fsl.mcar = vcpu_e500->mcar; in kvmppc_core_get_sregs_e500()
400 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_set_sregs_e500() local
404 vcpu_e500->svr = sregs->u.e.impl.fsl.svr; in kvmppc_core_set_sregs_e500()
405 vcpu_e500->hid0 = sregs->u.e.impl.fsl.hid0; in kvmppc_core_set_sregs_e500()
406 vcpu_e500->mcar = sregs->u.e.impl.fsl.mcar; in kvmppc_core_set_sregs_e500()
450 struct kvmppc_vcpu_e500 *vcpu_e500; in kvmppc_core_vcpu_create_e500() local
454 vcpu_e500 = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL); in kvmppc_core_vcpu_create_e500()
455 if (!vcpu_e500) { in kvmppc_core_vcpu_create_e500()
460 vcpu = &vcpu_e500->vcpu; in kvmppc_core_vcpu_create_e500()
465 if (kvmppc_e500_id_table_alloc(vcpu_e500) == NULL) in kvmppc_core_vcpu_create_e500()
468 err = kvmppc_e500_tlb_init(vcpu_e500); in kvmppc_core_vcpu_create_e500()
479 kvmppc_e500_tlb_uninit(vcpu_e500); in kvmppc_core_vcpu_create_e500()
481 kvmppc_e500_id_table_free(vcpu_e500); in kvmppc_core_vcpu_create_e500()
485 kmem_cache_free(kvm_vcpu_cache, vcpu_e500); in kvmppc_core_vcpu_create_e500()
492 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_free_e500() local
495 kvmppc_e500_tlb_uninit(vcpu_e500); in kvmppc_core_vcpu_free_e500()
496 kvmppc_e500_id_table_free(vcpu_e500); in kvmppc_core_vcpu_free_e500()
498 kmem_cache_free(kvm_vcpu_cache, vcpu_e500); in kvmppc_core_vcpu_free_e500()