From e2971ebc98d89d71efaef6da4fbb4023c46e1308 Mon Sep 17 00:00:00 2001 From: Shiqing Gao Date: Thu, 10 Jan 2019 15:09:42 +0800 Subject: [PATCH] hv: vlapic: code clean-up * rename `vlapic_set_intr_ready` to `vlapic_accept_intr` * replace calling of `vlapic_intr_edge` with `vlapic_set_intr` * remove `vlapic_intr_level` and `vlapic_intr_edge` Tracked-On: #861 Signed-off-by: Shiqing Gao Acked-by: Eddie Dong --- .../hld/hv-virt-interrupt.rst | 6 ----- hypervisor/arch/x86/guest/vlapic.c | 10 ++++---- hypervisor/arch/x86/irq.c | 2 +- hypervisor/boot/uefi/uefi_boot.c | 2 +- hypervisor/common/io_request.c | 2 +- hypervisor/include/arch/x86/guest/vlapic.h | 25 ------------------- 6 files changed, 8 insertions(+), 39 deletions(-) diff --git a/doc/developer-guides/hld/hv-virt-interrupt.rst b/doc/developer-guides/hld/hv-virt-interrupt.rst index b9d11a4db..429d45a89 100644 --- a/doc/developer-guides/hld/hv-virt-interrupt.rst +++ b/doc/developer-guides/hld/hv-virt-interrupt.rst @@ -94,12 +94,6 @@ an interrupt, for example: These APIs will finish by making a request for *ACRN_REQUEST_EVENT.* -.. doxygenfunction:: vlapic_intr_level - :project: Project ACRN - -.. doxygenfunction:: vlapic_intr_edge - :project: Project ACRN - .. doxygenfunction:: vlapic_intr_accepted :project: Project ACRN diff --git a/hypervisor/arch/x86/guest/vlapic.c b/hypervisor/arch/x86/guest/vlapic.c index 3fe6636cd..86fa2e113 100644 --- a/hypervisor/arch/x86/guest/vlapic.c +++ b/hypervisor/arch/x86/guest/vlapic.c @@ -465,7 +465,7 @@ vlapic_esr_write_handler(struct acrn_vlapic *vlapic) * @pre vector >= 16 */ static bool -vlapic_set_intr_ready(struct acrn_vlapic *vlapic, uint32_t vector, bool level) +vlapic_accept_intr(struct acrn_vlapic *vlapic, uint32_t vector, bool level) { struct lapic_regs *lapic; struct lapic_reg *irrptr, *tmrptr; @@ -519,7 +519,7 @@ vlapic_set_intr_ready(struct acrn_vlapic *vlapic, uint32_t vector, bool level) idx, tmrptr[idx].v, level ? "level" : "edge"); } - vlapic_dump_irr(vlapic, "vlapic_set_intr_ready"); + vlapic_dump_irr(vlapic, "vlapic_accept_intr"); } } @@ -768,7 +768,7 @@ vlapic_fire_lvt(struct acrn_vlapic *vlapic, uint32_t lvt) switch (mode) { case APIC_LVT_DM_FIXED: - if (vlapic_set_intr_ready(vlapic, vec, false)) { + if (vlapic_accept_intr(vlapic, vec, false)) { vcpu_make_request(vcpu, ACRN_REQUEST_EVENT); } break; @@ -1933,7 +1933,7 @@ vlapic_set_intr(struct acrn_vcpu *vcpu, uint32_t vector, bool level) dev_dbg(ACRN_DBG_LAPIC, "vlapic ignoring interrupt to vector %u", vector); } else { - if (vlapic_set_intr_ready(vlapic, vector, level)) { + if (vlapic_accept_intr(vlapic, vector, level)) { vcpu_make_request(vcpu, ACRN_REQUEST_EVENT); } } @@ -2049,7 +2049,7 @@ static void vlapic_timer_expired(void *data) /* inject vcpu timer interrupt if not masked */ if (!vlapic_lvtt_masked(vlapic)) { - vlapic_intr_edge(vcpu, lapic->lvt[APIC_LVT_TIMER].v & APIC_LVTT_VECTOR); + vlapic_set_intr(vcpu, lapic->lvt[APIC_LVT_TIMER].v & APIC_LVTT_VECTOR, LAPIC_TRIG_EDGE); } if (!vlapic_lvtt_period(vlapic)) { diff --git a/hypervisor/arch/x86/irq.c b/hypervisor/arch/x86/irq.c index 78bf41e05..56cdcdd8e 100644 --- a/hypervisor/arch/x86/irq.c +++ b/hypervisor/arch/x86/irq.c @@ -384,7 +384,7 @@ void partition_mode_dispatch_interrupt(struct intr_excp_ctx *ctx) vcpu = per_cpu(vcpu, get_cpu_id()); if (vr < VECTOR_FIXED_START) { send_lapic_eoi(); - vlapic_intr_edge(vcpu, vr); + vlapic_set_intr(vcpu, vr, LAPIC_TRIG_EDGE); } else { dispatch_interrupt(ctx); } diff --git a/hypervisor/boot/uefi/uefi_boot.c b/hypervisor/boot/uefi/uefi_boot.c index 93f864c20..b854d179d 100644 --- a/hypervisor/boot/uefi/uefi_boot.c +++ b/hypervisor/boot/uefi/uefi_boot.c @@ -17,7 +17,7 @@ static void efi_spurious_handler(int32_t vector) struct acrn_vcpu *vcpu = per_cpu(vcpu, BOOT_CPU_ID); if (vcpu != NULL) { - vlapic_set_intr(vcpu, vector, 0); + vlapic_set_intr(vcpu, vector, LAPIC_TRIG_EDGE); } else { pr_err("%s vcpu or vlapic is not ready, interrupt lost\n", __func__); } diff --git a/hypervisor/common/io_request.c b/hypervisor/common/io_request.c index 0b12824b0..ed8bf6100 100644 --- a/hypervisor/common/io_request.c +++ b/hypervisor/common/io_request.c @@ -22,7 +22,7 @@ static void fire_vhm_interrupt(void) vcpu = vcpu_from_vid(vm0, 0U); - vlapic_intr_edge(vcpu, acrn_vhm_vector); + vlapic_set_intr(vcpu, acrn_vhm_vector, LAPIC_TRIG_EDGE); } #if defined(HV_DEBUG) diff --git a/hypervisor/include/arch/x86/guest/vlapic.h b/hypervisor/include/arch/x86/guest/vlapic.h index a55cbc1a6..14b73b700 100644 --- a/hypervisor/include/arch/x86/guest/vlapic.h +++ b/hypervisor/include/arch/x86/guest/vlapic.h @@ -194,31 +194,6 @@ void vlapic_set_intr(struct acrn_vcpu *vcpu, uint32_t vector, bool level); #define LAPIC_TRIG_LEVEL true #define LAPIC_TRIG_EDGE false -/** - * @brief Pend level-trigger mode virtual interrupt to vCPU. - * - * @param[in] vcpu Pointer to target vCPU data structure - * @param[in] vector Vector to be injected. - * - */ -static inline void -vlapic_intr_level(struct acrn_vcpu *vcpu, uint32_t vector) -{ - vlapic_set_intr(vcpu, vector, LAPIC_TRIG_LEVEL); -} - -/** - * @brief Pend edge-trigger mode virtual interrupt to vCPU. - * - * @param[in] vcpu Pointer to target vCPU data structure - * @param[in] vector Vector to be injected. - * - */ -static inline void -vlapic_intr_edge(struct acrn_vcpu *vcpu, uint32_t vector) -{ - vlapic_set_intr(vcpu, vector, LAPIC_TRIG_EDGE); -} /** * @brief Triggers LAPIC local interrupt(LVT).