[tip: irq/msi] bus: fsl-mc-msi: Allocate MSI device data on first use

From: tip-bot2 for Thomas Gleixner
Date: Thu Dec 16 2021 - 16:43:42 EST


The following commit has been merged into the irq/msi branch of tip:

Commit-ID: 86ca622628d3941835138f2f89e69ed63f7f50fe
Gitweb: https://git.kernel.org/tip/86ca622628d3941835138f2f89e69ed63f7f50fe
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
AuthorDate: Fri, 10 Dec 2021 23:19:00 +01:00
Committer: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CommitterDate: Thu, 16 Dec 2021 22:16:38 +01:00

bus: fsl-mc-msi: Allocate MSI device data on first use

Allocate the MSI device data on first invocation of the allocation function.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Reviewed-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20211210221813.867985931@xxxxxxxxxxxxx

---
drivers/bus/fsl-mc/fsl-mc-msi.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/fsl-mc/fsl-mc-msi.c b/drivers/bus/fsl-mc/fsl-mc-msi.c
index cf97487..c6215b7 100644
--- a/drivers/bus/fsl-mc/fsl-mc-msi.c
+++ b/drivers/bus/fsl-mc/fsl-mc-msi.c
@@ -253,6 +253,14 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev,
struct irq_domain *msi_domain;
int error;

+ msi_domain = dev_get_msi_domain(dev);
+ if (!msi_domain)
+ return -EINVAL;
+
+ error = msi_setup_device_data(dev);
+ if (error)
+ return error;
+
if (!list_empty(dev_to_msi_list(dev)))
return -EINVAL;

@@ -260,12 +268,6 @@ int fsl_mc_msi_domain_alloc_irqs(struct device *dev,
if (error < 0)
return error;

- msi_domain = dev_get_msi_domain(dev);
- if (!msi_domain) {
- error = -EINVAL;
- goto cleanup_msi_descs;
- }
-
/*
* NOTE: Calling this function will trigger the invocation of the
* its_fsl_mc_msi_prepare() callback