RE: [patch V2 13/33] x86/apic/vector: Provide MSI parent domain

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Sent: Wednesday, November 23, 2022 9:42 PM
> 
> On Wed, Nov 23 2022 at 08:16, Kevin Tian wrote:
> >> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> >> Sent: Monday, November 21, 2022 10:38 PM
> >> +
> >> +	/*
> >> +	 * Mask out the domain specific MSI feature flags which are not
> >> +	 * supported by the real parent.
> >> +	 */
> >> +	info->flags			&= pops->supported_flags;
> >> +	/* Enforce the required flags */
> >> +	info->flags			|=
> >> X86_VECTOR_MSI_FLAGS_REQUIRED;
> >> +
> >> +	/* This is always invoked from the top level MSI domain! */
> >> +	info->ops->msi_prepare		= x86_msi_prepare;
> >> +
> >> +	info->chip->irq_ack		= irq_chip_ack_parent;
> >> +	info->chip->irq_retrigger	= irq_chip_retrigger_hierarchy;
> >> +	info->chip->flags		|= IRQCHIP_SKIP_SET_WAKE |
> >> +					   IRQCHIP_AFFINITY_PRE_STARTUP;
> >
> > Above are executed twice for both IR and vector after next patch comes.
> > Could skip it for IR.
> 
> How so?
> 
> +static const struct msi_parent_ops dmar_msi_parent_ops = {
> +	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED |
> MSI_FLAG_MULTI_PCI_MSI,
> +	.prefix			= "IR-",
> +	.init_dev_msi_info	= msi_parent_init_dev_msi_info,
> +};
> 
> IR delegates the init to its parent domain, i.e. the vector domain. So
> there is no double invocation.
> 

oops. How come I read msi_parent_init_dev_msi_info() as
x86_init_dev_msi_info(). 😊




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux