 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 2/3] x86/pt: enable binding of GSIs to a PVH Dom0
 >>> On 20.06.17 at 11:15, <roger.pau@xxxxxxxxxx> wrote:
> @@ -472,7 +514,29 @@ int pt_irq_create_bind(
>                  pirq_dpci->flags = HVM_IRQ_DPCI_MAPPED |
>                                     HVM_IRQ_DPCI_MACH_PCI |
>                                     HVM_IRQ_DPCI_GUEST_PCI;
> -                share = BIND_PIRQ__WILL_SHARE;
> +                if ( !is_hardware_domain(d) )
> +                    share = BIND_PIRQ__WILL_SHARE;
> +                else
> +                {
> +                    unsigned int pin;
> +                    const struct hvm_vioapic *vioapic = gsi_vioapic(d,
> +                                                                    
> guest_gsi,
> +                                                                    &pin);
> +
> +                    if ( !vioapic )
> +                    {
> +                        ASSERT_UNREACHABLE();
> +                        return -EINVAL;
> +                    }
> +                    pirq_dpci->flags |= HVM_IRQ_DPCI_IDENTITY_GSI;
> +                    /*
> +                     * Check if the corresponding vIO APIC pin is configured
> +                     * level or edge trigger, level triggered interrupts will
> +                     * be marked as shareable.
> +                     */
> +                    ASSERT(!vioapic->redirtbl[pin].fields.mask);
> +                    share = vioapic->redirtbl[pin].fields.trig_mode;
> +                }
I'm sorry for paying attention to this only now, but the vIO-APIC
code here really should be converted into a
vioapic_get_trigger_mode() helper living in vioapic.[ch]. The same
I think actually holds for the two uses of gsi_vioapic(), and that
function should really have been kept static to vioapic.c.
Everything else looks fine to me now.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
 
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |