Lines Matching full:vpe
94 * The v4.1 doorbell can fire concurrently with the vPE being in vgic_v4_doorbell_handler()
108 static void vgic_v4_sync_sgi_config(struct its_vpe *vpe, struct vgic_irq *irq) in vgic_v4_sync_sgi_config() argument
110 vpe->sgi_config[irq->intid].enabled = irq->enabled; in vgic_v4_sync_sgi_config()
111 vpe->sgi_config[irq->intid].group = irq->group; in vgic_v4_sync_sgi_config()
112 vpe->sgi_config[irq->intid].priority = irq->priority; in vgic_v4_sync_sgi_config()
117 struct its_vpe *vpe = &vcpu->arch.vgic_cpu.vgic_v3.its_vpe; in vgic_v4_enable_vsgis() local
137 irq->host_irq = irq_find_mapping(vpe->sgi_domain, i); in vgic_v4_enable_vsgis()
139 /* Transfer the full irq state to the vPE */ in vgic_v4_enable_vsgis()
140 vgic_v4_sync_sgi_config(vpe, irq); in vgic_v4_enable_vsgis()
208 * Must be called with GICv4.1 and the vPE unmapped, which
210 * with the vPE, thus we can get the VLPI state by peeking
215 struct its_vpe *vpe = &irq->target_vcpu->arch.vgic_cpu.vgic_v3.its_vpe; in vgic_v4_get_vlpi_state() local
220 va = page_address(vpe->vpt_page); in vgic_v4_get_vlpi_state()
268 kvm_err("VPE IRQ allocation failure\n"); in vgic_v4_init()
341 struct its_vpe *vpe = &vcpu->arch.vgic_cpu.vgic_v3.its_vpe; in vgic_v4_put() local
343 if (!vgic_supports_direct_msis(vcpu->kvm) || !vpe->resident) in vgic_v4_put()
346 return its_make_vpe_non_resident(vpe, !!vcpu_get_flag(vcpu, IN_WFI)); in vgic_v4_put()
351 struct its_vpe *vpe = &vcpu->arch.vgic_cpu.vgic_v3.its_vpe; in vgic_v4_load() local
354 if (!vgic_supports_direct_msis(vcpu->kvm) || vpe->resident) in vgic_v4_load()
361 * Before making the VPE resident, make sure the redistributor in vgic_v4_load()
366 err = irq_set_affinity(vpe->irq, cpumask_of(smp_processor_id())); in vgic_v4_load()
370 err = its_make_vpe_resident(vpe, false, vcpu->kvm->arch.vgic.enabled); in vgic_v4_load()
375 * Now that the VPE is resident, let's get rid of a potential in vgic_v4_load()
380 err = irq_set_irqchip_state(vpe->irq, IRQCHIP_STATE_PENDING, false); in vgic_v4_load()
387 struct its_vpe *vpe = &vcpu->arch.vgic_cpu.vgic_v3.its_vpe; in vgic_v4_commit() local
390 * No need to wait for the vPE to be ready across a shallow guest in vgic_v4_commit()
393 if (!vpe->ready) in vgic_v4_commit()
394 its_commit_vpe(vpe); in vgic_v4_commit()
451 .vpe = &irq->target_vcpu->arch.vgic_cpu.vgic_v3.its_vpe, in kvm_vgic_v4_set_forwarding()
465 atomic_inc(&map.vpe->vlpi_count); in kvm_vgic_v4_set_forwarding()