> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Sent: Friday, November 25, 2022 7:26 AM > + > + if (!irq_domain_is_msi_parent(domain)) { > + /* > + * For "global" PCI/MSI interrupt domains the associated > + * msi_domain_info::flags is the authoritive source of > + * information. > + */ > + info = domain->host_data; > + supported = info->flags; > + } else { > + /* > + * For MSI parent domains the supported feature set > + * is avaliable in the parent ops. This makes checks > + * possible before actually instantiating the > + * per device domain because the parent is never > + * expanding the PCI/MSI functionality. > + */ > + supported = domain->msi_parent_ops->supported_flags; > + } As discussed in v2 it's probably clearer to also mark out that it's always the direct parent putting restrictions on all existing architectures. That is why checking direct parent is sufficient here.