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()
332 static void kvmppc_e500_tlb_setup(struct kvmppc_vcpu_e500 *vcpu_e500) in kvmppc_e500_tlb_setup() argument
337 tlbe = get_entry(vcpu_e500, 1, 0); in kvmppc_e500_tlb_setup()
343 tlbe = get_entry(vcpu_e500, 1, 1); in kvmppc_e500_tlb_setup()
351 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_setup() local
353 kvmppc_e500_tlb_setup(vcpu_e500); in kvmppc_core_vcpu_setup()
357 vcpu_e500->svr = mfspr(SPRN_SVR); in kvmppc_core_vcpu_setup()
367 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_get_sregs_e500() local
374 sregs->u.e.impl.fsl.svr = vcpu_e500->svr; in kvmppc_core_get_sregs_e500()
375 sregs->u.e.impl.fsl.hid0 = vcpu_e500->hid0; in kvmppc_core_get_sregs_e500()
376 sregs->u.e.impl.fsl.mcar = vcpu_e500->mcar; in kvmppc_core_get_sregs_e500()
392 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_set_sregs_e500() local
396 vcpu_e500->svr = sregs->u.e.impl.fsl.svr; in kvmppc_core_set_sregs_e500()
397 vcpu_e500->hid0 = sregs->u.e.impl.fsl.hid0; in kvmppc_core_set_sregs_e500()
398 vcpu_e500->mcar = sregs->u.e.impl.fsl.mcar; in kvmppc_core_set_sregs_e500()
442 struct kvmppc_vcpu_e500 *vcpu_e500; in kvmppc_core_vcpu_create_e500() local
446 vcpu_e500 = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL); in kvmppc_core_vcpu_create_e500()
447 if (!vcpu_e500) { in kvmppc_core_vcpu_create_e500()
452 vcpu = &vcpu_e500->vcpu; in kvmppc_core_vcpu_create_e500()
457 if (kvmppc_e500_id_table_alloc(vcpu_e500) == NULL) in kvmppc_core_vcpu_create_e500()
460 err = kvmppc_e500_tlb_init(vcpu_e500); in kvmppc_core_vcpu_create_e500()
471 kvmppc_e500_tlb_uninit(vcpu_e500); in kvmppc_core_vcpu_create_e500()
473 kvmppc_e500_id_table_free(vcpu_e500); in kvmppc_core_vcpu_create_e500()
477 kmem_cache_free(kvm_vcpu_cache, vcpu_e500); in kvmppc_core_vcpu_create_e500()
484 struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); in kvmppc_core_vcpu_free_e500() local
487 kvmppc_e500_tlb_uninit(vcpu_e500); in kvmppc_core_vcpu_free_e500()
488 kvmppc_e500_id_table_free(vcpu_e500); in kvmppc_core_vcpu_free_e500()
490 kmem_cache_free(kvm_vcpu_cache, vcpu_e500); in kvmppc_core_vcpu_free_e500()