From: "tip-bot2 for Thomas Gleixner" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
Michael Kelley <mikelley@microsoft.com>,
Nishanth Menon <nm@ti.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: irq/msi] PCI/MSI: Allocate MSI device data on first use
Date: Thu, 16 Dec 2021 21:41:06 -0000 [thread overview]
Message-ID: <163969086699.23020.8679575401296088362.tip-bot2@tip-bot2> (raw)
In-Reply-To: <87r1adrdje.ffs@tglx>
The following commit has been merged into the irq/msi branch of tip:
Commit-ID: 93296cd1325d1d9afede60202d8833011c9001f2
Gitweb: https://git.kernel.org/tip/93296cd1325d1d9afede60202d8833011c9001f2
Author: Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Wed, 15 Dec 2021 18:19:49 +01:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Thu, 16 Dec 2021 22:16:38 +01:00
PCI/MSI: Allocate MSI device data on first use
Allocate MSI device data on first use, i.e. when a PCI driver invokes one
of the PCI/MSI enablement functions.
Add a wrapper function to ensure that the ordering vs. pcim_msi_release()
is correct.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Michael Kelley <mikelley@microsoft.com>
Tested-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/87r1adrdje.ffs@tglx
---
drivers/pci/msi/msi.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/msi/msi.c b/drivers/pci/msi/msi.c
index 358b63e..369e3c5 100644
--- a/drivers/pci/msi/msi.c
+++ b/drivers/pci/msi/msi.c
@@ -366,6 +366,19 @@ static int pcim_setup_msi_release(struct pci_dev *dev)
return ret;
}
+/*
+ * Ordering vs. devres: msi device data has to be installed first so that
+ * pcim_msi_release() is invoked before it on device release.
+ */
+static int pci_setup_msi_context(struct pci_dev *dev)
+{
+ int ret = msi_setup_device_data(&dev->dev);
+
+ if (!ret)
+ ret = pcim_setup_msi_release(dev);
+ return ret;
+}
+
static struct msi_desc *
msi_setup_entry(struct pci_dev *dev, int nvec, struct irq_affinity *affd)
{
@@ -909,7 +922,7 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
if (nvec > maxvec)
nvec = maxvec;
- rc = pcim_setup_msi_release(dev);
+ rc = pci_setup_msi_context(dev);
if (rc)
return rc;
@@ -956,7 +969,7 @@ static int __pci_enable_msix_range(struct pci_dev *dev,
if (WARN_ON_ONCE(dev->msix_enabled))
return -EINVAL;
- rc = pcim_setup_msi_release(dev);
+ rc = pci_setup_msi_context(dev);
if (rc)
return rc;
next prev parent reply other threads:[~2021-12-16 21:42 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-10 22:18 [patch V3 00/35] genirq/msi, PCI/MSI: Spring cleaning - Part 2 Thomas Gleixner
2021-12-10 22:18 ` [patch V3 01/35] PCI/MSI: Set pci_dev::msi[x]_enabled early Thomas Gleixner
2021-12-13 13:37 ` Jason Gunthorpe
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 02/35] x86/pci/XEN: Use PCI device property Thomas Gleixner
2021-12-13 13:56 ` Jason Gunthorpe
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 03/35] x86/apic/msi: Use PCI device MSI property Thomas Gleixner
2021-12-11 10:52 ` Greg Kroah-Hartman
2021-12-13 13:59 ` Jason Gunthorpe
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 04/35] genirq/msi: Use PCI device property Thomas Gleixner
2021-12-13 13:59 ` Jason Gunthorpe
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 05/35] powerpc/cell/axon_msi: " Thomas Gleixner
2021-12-11 15:21 ` Arnd Bergmann
2021-12-13 14:01 ` Jason Gunthorpe
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 06/35] powerpc/pseries/msi: Use PCI device properties Thomas Gleixner
2021-12-13 14:04 ` Jason Gunthorpe
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 07/35] device: Move MSI related data into a struct Thomas Gleixner
2021-12-11 15:22 ` Arnd Bergmann
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 08/35] device: Add device:: Msi_data pointer and struct msi_device_data Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 09/35] PCI/MSI: Allocate MSI device data on first use Thomas Gleixner
2021-12-15 17:16 ` [patch V4 09-01/35] PCI/MSI: Decouple MSI[-X] disable from pcim_release() Thomas Gleixner
2021-12-15 17:19 ` [patch V4 09-02/35] PCI/MSI: Allocate MSI device data on first use Thomas Gleixner
2021-12-15 17:46 ` Greg Kroah-Hartman
2021-12-16 21:41 ` tip-bot2 for Thomas Gleixner [this message]
2021-12-15 17:46 ` [patch V4 09-01/35] PCI/MSI: Decouple MSI[-X] disable from pcim_release() Greg Kroah-Hartman
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:18 ` [patch V3 10/35] platform-msi: Allocate MSI device data on first use Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 11/35] bus: fsl-mc-msi: " Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 12/35] soc: ti: ti_sci_inta_msi: " Thomas Gleixner
2021-12-11 15:22 ` Arnd Bergmann
2021-12-13 17:56 ` Nishanth Menon
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 13/35] genirq/msi: Provide msi_device_populate/destroy_sysfs() Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 14/35] PCI/MSI: Let the irq code handle sysfs groups Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 15/35] platform-msi: Let the core " Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 16/35] genirq/msi: Remove the original sysfs interfaces Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 17/35] platform-msi: Rename functions and clarify comments Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 18/35] platform-msi: Store platform private data pointer in msi_device_data Thomas Gleixner
2021-12-16 21:41 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 19/35] genirq/msi: Consolidate MSI descriptor data Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 20/35] platform-msi: Use msi_desc::msi_index Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 21/35] bus: fsl-mc-msi: " Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 22/35] soc: ti: ti_sci_inta_msi: " Thomas Gleixner
2021-12-13 17:57 ` Nishanth Menon
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 23/35] PCI/MSI: " Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 24/35] PCI/MSI: Provide MSI_FLAG_MSIX_CONTIGUOUS Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 25/35] powerpc/pseries/msi: Let core code check for contiguous entries Thomas Gleixner
2021-12-13 14:05 ` Jason Gunthorpe
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 26/35] genirq/msi: Provide interface to retrieve Linux interrupt number Thomas Gleixner
2021-12-13 14:22 ` Jason Gunthorpe
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 27/35] PCI/MSI: Use __msi_get_virq() in pci_get_vector() Thomas Gleixner
2021-12-13 14:23 ` Jason Gunthorpe
2021-12-16 21:40 ` [tip: irq/msi] PCI/MSI: Use msi_get_virq() " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 28/35] PCI/MSI: Simplify pci_irq_get_affinity() Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-17 22:30 ` [patch V3 28/35] " Nathan Chancellor
2021-12-18 10:25 ` Thomas Gleixner
2021-12-18 19:04 ` Nathan Chancellor
2021-12-18 19:39 ` [tip: irq/msi] PCI/MSI: Unbreak pci_irq_get_affinity() tip-bot2 for Thomas Gleixner
2021-12-18 20:25 ` [patch V3 28/35] PCI/MSI: Simplify pci_irq_get_affinity() Cédric Le Goater
2021-12-20 11:55 ` Thomas Gleixner
2022-01-30 17:12 ` Guenter Roeck
2022-01-31 11:27 ` Thomas Gleixner
2022-01-31 15:21 ` Guenter Roeck
2022-01-31 21:16 ` Thomas Gleixner
2022-02-04 8:57 ` [tip: irq/urgent] PCI/MSI: Remove bogus warning in pci_irq_get_affinity() tip-bot2 for Thomas Gleixner
2022-02-04 11:29 ` Thorsten Leemhuis
2021-12-10 22:19 ` [patch V3 29/35] dmaengine: mv_xor_v2: Get rid of msi_desc abuse Thomas Gleixner
2021-12-13 5:14 ` Vinod Koul
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 30/35] perf/smmuv3: Use msi_get_virq() Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 31/35] iommu/arm-smmu-v3: " Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 32/35] mailbox: bcm-flexrm-mailbox: Rework MSI interrupt handling Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 33/35] bus: fsl-mc: fsl-mc-allocator: Rework MSI handling Thomas Gleixner
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 34/35] soc: ti: ti_sci_inta_msi: Get rid of ti_sci_inta_msi_get_virq() Thomas Gleixner
2021-12-11 15:24 ` Arnd Bergmann
2021-12-13 5:15 ` Vinod Koul
2021-12-13 17:57 ` Nishanth Menon
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-10 22:19 ` [patch V3 35/35] dmaengine: qcom_hidma: Cleanup MSI handling Thomas Gleixner
2021-12-13 5:14 ` Vinod Koul
2021-12-16 21:40 ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-13 18:29 ` [patch V3 00/35] genirq/msi, PCI/MSI: Spring cleaning - Part 2 Nishanth Menon
2021-12-14 9:41 ` Thomas Gleixner
2021-12-14 16:22 ` Nishanth Menon
2021-12-14 16:36 ` Thomas Gleixner
2021-12-14 17:03 ` Thomas Gleixner
2021-12-14 20:15 ` Thomas Gleixner
2021-12-14 20:56 ` Nishanth Menon
2021-12-14 21:19 ` Thomas Gleixner
2021-12-15 16:18 ` Thomas Gleixner
2021-12-15 16:35 ` Thomas Gleixner
2021-12-15 18:08 ` Nishanth Menon
2021-12-16 1:45 ` Nishanth Menon
2021-12-16 17:23 ` Thomas Gleixner
2021-12-16 6:14 ` Michael Kelley (LINUX)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=163969086699.23020.8679575401296088362.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mikelley@microsoft.com \
--cc=nm@ti.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).