On Sun, Jun 16, 2019 at 11:55:03AM +0200, Thomas Gleixner wrote:
> On Thu, 23 May 2019, Ricardo Neri wrote:
> >  
> >  struct irq_cfg {
> > -   unsigned int            dest_apicid;
> > -   unsigned int            vector;
> > +   unsigned int                            dest_apicid;
> > +   unsigned int                            vector;
> > +   enum ioapic_irq_destination_types       delivery_mode;
> 
> And how is this related to IOAPIC?

In my view, IOAPICs can also be programmed with a delivery mode. Mode
values are the same for MSI interrupts.

> I know this enum exists already, but in
> connection with MSI this does not make any sense at all.

Is the issue here the name of the enumeration?

> 
> > +
> > +           /*
> > +            * Initialize the delivery mode of this irq to match the
> > +            * default delivery mode of the APIC. This is useful for
> > +            * children irq domains which want to take the delivery
> > +            * mode from the individual irq configuration rather
> > +            * than from the APIC.
> > +            */
> > +            apicd->hw_irq_cfg.delivery_mode = apic->irq_delivery_mode;
> 
> And here it's initialized from apic->irq_delivery_mode, which is an
> u32. Intuitive and consistent - NOT!

Yes, this is wrong. Then should the member in the structure above be an
u32 instead of enum ioapic_irq_destination_types?

Thanks and BR,
Ricardo
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to