On Thu, May 05 2022 at 16:59, Ricardo Neri wrote:
> Currently, the delivery mode of all interrupts is set to the mode of the
> APIC driver in use. There are no restrictions in hardware to configure the
> delivery mode of each interrupt individually. Also, certain IRQs need
> to be

s/IRQ/interrupt/ Changelogs can do without acronyms.

> configured with a specific delivery mode (e.g., NMI).
>
> Add a new member, delivery_mode, to struct irq_cfg. Subsequent changesets
> will update every irq_domain to set the delivery mode of each IRQ to that
> specified in its irq_cfg data.
>
> To keep the current behavior, when allocating an IRQ in the root
> domain

The root domain does not allocate an interrupt. The root domain
allocates a vector for an interrupt. There is a very clear and technical
destinction. Can you please be more careful about the wording?

> --- a/arch/x86/kernel/apic/vector.c
> +++ b/arch/x86/kernel/apic/vector.c
> @@ -567,6 +567,7 @@ static int x86_vector_alloc_irqs(struct irq_domain 
> *domain, unsigned int virq,
>               irqd->chip_data = apicd;
>               irqd->hwirq = virq + i;
>               irqd_set_single_target(irqd);
> +

Stray newline.

>               /*
>                * Prevent that any of these interrupts is invoked in
>                * non interrupt context via e.g. generic_handle_irq()
> @@ -577,6 +578,14 @@ static int x86_vector_alloc_irqs(struct irq_domain 
> *domain, unsigned int virq,
>               /* Don't invoke affinity setter on deactivated interrupts */
>               irqd_set_affinity_on_activate(irqd);
>  
> +             /*
> +              * Initialize the delivery mode of this irq to match the

s/irq/interrupt/

> +              * default delivery mode of the APIC. Children irq domains
> +              * may take the delivery mode from the individual irq
> +              * configuration rather than from the APIC driver.
> +              */
> +             apicd->hw_irq_cfg.delivery_mode = apic->delivery_mode;
> +
>               /*
>                * Legacy vectors are already assigned when the IOAPIC
>                * takes them over. They stay on the same vector. This is
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to