Commit f6d3486a authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

genirq/msi: Provide msi_domain_ops:: Post_free()



To prepare for removing the exposure of __msi_domain_free_irqs() provide a
post_free() callback in the MSI domain ops which can be used to solve
the problem of the only user of __msi_domain_free_irqs() in arch/powerpc.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarAshok Raj <ashok.raj@intel.com>
Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20221111122014.063153448@linutronix.de
parent 762687ce
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -315,6 +315,8 @@ struct msi_domain_info;
 *			function.
 * @domain_free_irqs:	Optional function to override the default free
 *			function.
 * @msi_post_free:	Optional function which is invoked after freeing
 *			all interrupts.
 *
 * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
 * irqdomain.
@@ -359,6 +361,8 @@ struct msi_domain_ops {
					     struct device *dev, int nvec);
	void		(*domain_free_irqs)(struct irq_domain *domain,
					    struct device *dev);
	void		(*msi_post_free)(struct irq_domain *domain,
					 struct device *dev);
};

/**
+2 −0
Original line number Diff line number Diff line
@@ -1026,6 +1026,8 @@ void msi_domain_free_irqs_descs_locked(struct irq_domain *domain, struct device
	lockdep_assert_held(&dev->msi.data->mutex);

	ops->domain_free_irqs(domain, dev);
	if (ops->msi_post_free)
		ops->msi_post_free(domain, dev);
	msi_domain_free_msi_descs(info, dev);
}