[RFC PATCH v4 18/21] x86/apic: Add a parameter for the APIC delivery mode

Thomas Gleixner tglx at linutronix.de
Tue Jun 18 23:15:39 UTC 2019


On Tue, 18 Jun 2019, Ricardo Neri wrote:

> 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
> 


More information about the iommu mailing list