|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH v2 02/11] x86/hvm: drop domain parameter from vioapic/vpic EOI callbacks
> -----Original Message-----
> From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> Sent: 30 September 2020 11:41
> To: xen-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Roger Pau Monne <roger.pau@xxxxxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>;
> Andrew Cooper
> <andrew.cooper3@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx>; Paul Durrant <paul@xxxxxxx>
> Subject: [PATCH v2 02/11] x86/hvm: drop domain parameter from vioapic/vpic
> EOI callbacks
>
> EOIs are always executed in guest vCPU context, so there's no reason to
> pass a domain parameter around as can be fetched from current->domain.
>
> No functional change intended.
>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> ---
> Changes since v1:
> - New in this version.
You could even squash this with the previous patch I think...
Reviewed-by: Paul Durrant <paul@xxxxxxx>
> ---
> xen/arch/x86/hvm/vioapic.c | 2 +-
> xen/arch/x86/hvm/vpic.c | 3 +--
> xen/drivers/passthrough/io.c | 4 ++--
> xen/include/asm-x86/hvm/io.h | 3 +--
> 4 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> index 0fb9147d99..752fc410db 100644
> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -522,7 +522,7 @@ void vioapic_update_EOI(unsigned int vector)
> if ( is_iommu_enabled(d) )
> {
> spin_unlock(&d->arch.hvm.irq_lock);
> - hvm_dpci_eoi(d, vioapic->base_gsi + pin, ent);
> + hvm_dpci_eoi(vioapic->base_gsi + pin, ent);
> spin_lock(&d->arch.hvm.irq_lock);
> }
>
> diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
> index 3cf12581e9..26f74f4471 100644
> --- a/xen/arch/x86/hvm/vpic.c
> +++ b/xen/arch/x86/hvm/vpic.c
> @@ -262,8 +262,7 @@ static void vpic_ioport_write(
> /* Release lock and EOI the physical interrupt (if any). */
> vpic_update_int_output(vpic);
> vpic_unlock(vpic);
> - hvm_dpci_eoi(current->domain,
> - hvm_isa_irq_to_gsi((addr >> 7) ? (pin | 8) :
> pin),
> + hvm_dpci_eoi(hvm_isa_irq_to_gsi((addr >> 7) ? (pin | 8) :
> pin),
> NULL);
> return; /* bail immediately */
> case 6: /* Set Priority */
> diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
> index 54f3e7b540..536e91ad76 100644
> --- a/xen/drivers/passthrough/io.c
> +++ b/xen/drivers/passthrough/io.c
> @@ -1003,9 +1003,9 @@ static void hvm_gsi_eoi(struct domain *d, unsigned int
> gsi,
> hvm_pirq_eoi(pirq, ent);
> }
>
> -void hvm_dpci_eoi(struct domain *d, unsigned int guest_gsi,
> - const union vioapic_redir_entry *ent)
> +void hvm_dpci_eoi(unsigned int guest_gsi, const union vioapic_redir_entry
> *ent)
> {
> + struct domain *d = current->domain;
> const struct hvm_irq_dpci *hvm_irq_dpci;
> const struct hvm_girq_dpci_mapping *girq;
>
> diff --git a/xen/include/asm-x86/hvm/io.h b/xen/include/asm-x86/hvm/io.h
> index adec0f566a..b05f619435 100644
> --- a/xen/include/asm-x86/hvm/io.h
> +++ b/xen/include/asm-x86/hvm/io.h
> @@ -118,8 +118,7 @@ bool handle_mmio_with_translation(unsigned long gla,
> unsigned long gpfn,
> struct npfec);
> bool handle_pio(uint16_t port, unsigned int size, int dir);
> void hvm_interrupt_post(struct vcpu *v, int vector, int type);
> -void hvm_dpci_eoi(struct domain *d, unsigned int guest_irq,
> - const union vioapic_redir_entry *ent);
> +void hvm_dpci_eoi(unsigned int guest_irq, const union vioapic_redir_entry
> *ent);
> void msix_write_completion(struct vcpu *);
>
> #ifdef CONFIG_HVM
> --
> 2.28.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |