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()
263 kvmppc_e500_id_table_reset_one(vcpu_e500, ts, tid, pr); in kvmppc_e500_tlbil_one()
292 void kvmppc_e500_tlbil_all(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_tlbil_all() argument
294 kvmppc_e500_id_table_reset_all(vcpu_e500); in kvmppc_e500_tlbil_all()
333 static void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_tlb_setup() argument
338 tlbe = get_entry(vcpu_e500, 1, 0); in kvmppc_e500_tlb_setup()
344 tlbe = get_entry(vcpu_e500, 1, 1); in kvmppc_e500_tlb_setup()
352 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_setup() local
354 kvmppc_e500_tlb_setup(vcpu_e500); in kvmppc_core_vcpu_setup()
358 vcpu_e500->svr = mfspr(SPRN_SVR); in kvmppc_core_vcpu_setup()
368 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_get_sregs_e500() local
375 sregs->u.e.impl.fsl.svr = vcpu_e500->svr; in kvmppc_core_get_sregs_e500()
376 sregs->u.e.impl.fsl.hid0 = vcpu_e500->hid0; in kvmppc_core_get_sregs_e500()
377 sregs->u.e.impl.fsl.mcar = vcpu_e500->mcar; in kvmppc_core_get_sregs_e500()
393 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_set_sregs_e500() local
397 vcpu_e500->svr = sregs->u.e.impl.fsl.svr; in kvmppc_core_set_sregs_e500()
398 vcpu_e500->hid0 = sregs->u.e.impl.fsl.hid0; in kvmppc_core_set_sregs_e500()
399 vcpu_e500->mcar = sregs->u.e.impl.fsl.mcar; in kvmppc_core_set_sregs_e500()
443 struct kvmppc_vcpu_e500 *vcpu_e500; in kvmppc_core_vcpu_create_e500() local
447 vcpu_e500 = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL); in kvmppc_core_vcpu_create_e500()
448 if (!vcpu_e500) { in kvmppc_core_vcpu_create_e500()
453 vcpu = &vcpu_e500->vcpu; in kvmppc_core_vcpu_create_e500()
458 if (kvmppc_e500_id_table_alloc(vcpu_e500) == NULL) in kvmppc_core_vcpu_create_e500()
461 err = kvmppc_e500_tlb_init(vcpu_e500); in kvmppc_core_vcpu_create_e500()
472 kvmppc_e500_tlb_uninit(vcpu_e500); in kvmppc_core_vcpu_create_e500()
474 kvmppc_e500_id_table_free(vcpu_e500); in kvmppc_core_vcpu_create_e500()
478 kmem_cache_free(kvm_vcpu_cache, vcpu_e500); in kvmppc_core_vcpu_create_e500()
485 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_free_e500() local
488 kvmppc_e500_tlb_uninit(vcpu_e500); in kvmppc_core_vcpu_free_e500()
489 kvmppc_e500_id_table_free(vcpu_e500); in kvmppc_core_vcpu_free_e500()
491 kmem_cache_free(kvm_vcpu_cache, vcpu_e500); in kvmppc_core_vcpu_free_e500()