|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V3 25/29] x86/vmsi: Hook delivering remapping format msi to guest
On Thu, Sep 21, 2017 at 11:02:06PM -0400, Lan Tianyu wrote:
> diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
> index 6196334..349a8cf 100644
> --- a/xen/drivers/passthrough/io.c
> +++ b/xen/drivers/passthrough/io.c
> @@ -942,21 +942,20 @@ static void __msi_pirq_eoi(struct hvm_pirq_dpci
> *pirq_dpci)
> static int _hvm_dpci_msi_eoi(struct domain *d,
> struct hvm_pirq_dpci *pirq_dpci, void *arg)
> {
> - int vector = (long)arg;
> + uint8_t vector, dlm, vector_target = (long)arg;
Since you are changing this, please cast to (uint8_t) instead.
> + uint32_t dest;
> + bool dm;
Why are you moving dest, dm, dlm and vector here?
>
> - if ( (pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI) &&
> - (pirq_dpci->gmsi.legacy.gvec == vector) )
> + if ( pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI )
> {
> - unsigned int dest = MASK_EXTR(pirq_dpci->gmsi.legacy.gflags,
> - XEN_DOMCTL_VMSI_X86_DEST_ID_MASK);
> - bool dest_mode = pirq_dpci->gmsi.legacy.gflags &
> - XEN_DOMCTL_VMSI_X86_DM_MASK;
AFAICT their scope is limited to this if.
> + if ( pirq_dpci_2_msi_attr(d, pirq_dpci, &vector, &dest, &dm, &dlm) )
> + return 0;
>
> - if ( vlapic_match_dest(vcpu_vlapic(current), NULL, 0, dest,
> - dest_mode) )
> + if ( vector == vector_target &&
> + vlapic_match_dest(vcpu_vlapic(current), NULL, 0, dest, dm) )
> {
> - __msi_pirq_eoi(pirq_dpci);
> - return 1;
> + __msi_pirq_eoi(pirq_dpci);
> + return 1;
> }
> }
>
> --
> 1.8.3.1
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |