linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now
@ 2024-04-10 22:13 Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 1/7] Revert "PCI/MSI: Provide stubs for IMS functions" Bjorn Helgaas
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.

I propose to merge this via the PCI tree unless somebody else wants it.


Changes since v1 (https://lore.kernel.org/linux-pci/20240401232326.1794707-1-helgaas@kernel.org/):
  - Revert other IMS commits in IOMMU, apic, genirq, suggested by Kevin

Bjorn Helgaas (7):
  Revert "PCI/MSI: Provide stubs for IMS functions"
  Revert "PCI/MSI: Provide pci_ims_alloc/free_irq()"
  Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support"
  Revert "iommu/amd: Enable PCI/IMS"
  Revert "iommu/vt-d: Enable PCI/IMS"
  Revert "x86/apic/msi: Enable PCI/IMS"
  Revert "genirq/msi: Provide constants for PCI/IMS support"

 arch/x86/kernel/apic/msi.c          |  5 ---
 drivers/iommu/amd/iommu.c           | 17 +--------
 drivers/iommu/intel/irq_remapping.c | 19 ++--------
 drivers/pci/msi/api.c               | 50 ------------------------
 drivers/pci/msi/irqdomain.c         | 59 -----------------------------
 include/linux/irqdomain_defs.h      |  1 -
 include/linux/msi.h                 |  2 -
 include/linux/msi_api.h             |  1 -
 include/linux/pci.h                 | 26 -------------
 9 files changed, 5 insertions(+), 175 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH v2 1/7] Revert "PCI/MSI: Provide stubs for IMS functions"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 2/7] Revert "PCI/MSI: Provide pci_ims_alloc/free_irq()" Bjorn Helgaas
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit 41efa431244f6498833ff8ee8dde28c4924c5479.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.  If this is
re-added later, this could be squashed with these commits:

  0194425af0c8 ("PCI/MSI: Provide IMS (Interrupt Message Store) support")
  c9e5bea27383 ("PCI/MSI: Provide pci_ims_alloc/free_irq()")

which added the non-stub implementations.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
---
 include/linux/pci.h | 34 ++++++++--------------------------
 1 file changed, 8 insertions(+), 26 deletions(-)

diff --git a/include/linux/pci.h b/include/linux/pci.h
index 16493426a04f..abbef75b2b92 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1658,8 +1658,6 @@ struct msix_entry {
 	u16	entry;	/* Driver uses to specify entry, OS writes */
 };
 
-struct msi_domain_template;
-
 #ifdef CONFIG_PCI_MSI
 int pci_msi_vec_count(struct pci_dev *dev);
 void pci_disable_msi(struct pci_dev *dev);
@@ -1692,11 +1690,6 @@ void pci_msix_free_irq(struct pci_dev *pdev, struct msi_map map);
 void pci_free_irq_vectors(struct pci_dev *dev);
 int pci_irq_vector(struct pci_dev *dev, unsigned int nr);
 const struct cpumask *pci_irq_get_affinity(struct pci_dev *pdev, int vec);
-bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
-			   unsigned int hwsize, void *data);
-struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev, union msi_instance_cookie *icookie,
-				 const struct irq_affinity_desc *affdesc);
-void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map);
 
 #else
 static inline int pci_msi_vec_count(struct pci_dev *dev) { return -ENOSYS; }
@@ -1760,25 +1753,6 @@ static inline const struct cpumask *pci_irq_get_affinity(struct pci_dev *pdev,
 {
 	return cpu_possible_mask;
 }
-
-static inline bool pci_create_ims_domain(struct pci_dev *pdev,
-					 const struct msi_domain_template *template,
-					 unsigned int hwsize, void *data)
-{ return false; }
-
-static inline struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev,
-					       union msi_instance_cookie *icookie,
-					       const struct irq_affinity_desc *affdesc)
-{
-	struct msi_map map = { .index = -ENOSYS, };
-
-	return map;
-}
-
-static inline void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map)
-{
-}
-
 #endif
 
 /**
@@ -2690,6 +2664,14 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
 void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result err_type);
 #endif
 
+struct msi_domain_template;
+
+bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
+			   unsigned int hwsize, void *data);
+struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev, union msi_instance_cookie *icookie,
+				 const struct irq_affinity_desc *affdesc);
+void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map);
+
 #include <linux/dma-mapping.h>
 
 #define pci_printk(level, pdev, fmt, arg...) \
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 2/7] Revert "PCI/MSI: Provide pci_ims_alloc/free_irq()"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 1/7] Revert "PCI/MSI: Provide stubs for IMS functions" Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 3/7] Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support" Bjorn Helgaas
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit c9e5bea273834a63b5e9ba90ad94b305ba50704e.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.  If this is
re-added later, the relevant part of 41efa431244f ("PCI/MSI: Provide stubs
for IMS functions") should be squashed into it.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
---
 drivers/pci/msi/api.c | 50 -------------------------------------------
 include/linux/pci.h   |  3 ---
 2 files changed, 53 deletions(-)

diff --git a/drivers/pci/msi/api.c b/drivers/pci/msi/api.c
index be679aa5db64..3c1cd29c5cf2 100644
--- a/drivers/pci/msi/api.c
+++ b/drivers/pci/msi/api.c
@@ -365,56 +365,6 @@ const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
 }
 EXPORT_SYMBOL(pci_irq_get_affinity);
 
-/**
- * pci_ims_alloc_irq - Allocate an interrupt on a PCI/IMS interrupt domain
- * @dev:	The PCI device to operate on
- * @icookie:	Pointer to an IMS implementation specific cookie for this
- *		IMS instance (PASID, queue ID, pointer...).
- *		The cookie content is copied into the MSI descriptor for the
- *		interrupt chip callbacks or domain specific setup functions.
- * @affdesc:	Optional pointer to an interrupt affinity descriptor
- *
- * There is no index for IMS allocations as IMS is an implementation
- * specific storage and does not have any direct associations between
- * index, which might be a pure software construct, and device
- * functionality. This association is established by the driver either via
- * the index - if there is a hardware table - or in case of purely software
- * managed IMS implementation the association happens via the
- * irq_write_msi_msg() callback of the implementation specific interrupt
- * chip, which utilizes the provided @icookie to store the MSI message in
- * the appropriate place.
- *
- * Return: A struct msi_map
- *
- *	On success msi_map::index contains the allocated index (>= 0) and
- *	msi_map::virq the allocated Linux interrupt number (> 0).
- *
- *	On fail msi_map::index contains the error code and msi_map::virq
- *	is set to 0.
- */
-struct msi_map pci_ims_alloc_irq(struct pci_dev *dev, union msi_instance_cookie *icookie,
-				 const struct irq_affinity_desc *affdesc)
-{
-	return msi_domain_alloc_irq_at(&dev->dev, MSI_SECONDARY_DOMAIN, MSI_ANY_INDEX,
-				       affdesc, icookie);
-}
-EXPORT_SYMBOL_GPL(pci_ims_alloc_irq);
-
-/**
- * pci_ims_free_irq - Allocate an interrupt on a PCI/IMS interrupt domain
- *		      which was allocated via pci_ims_alloc_irq()
- * @dev:	The PCI device to operate on
- * @map:	A struct msi_map describing the interrupt to free as
- *		returned from pci_ims_alloc_irq()
- */
-void pci_ims_free_irq(struct pci_dev *dev, struct msi_map map)
-{
-	if (WARN_ON_ONCE(map.index < 0 || map.virq <= 0))
-		return;
-	msi_domain_free_irqs_range(&dev->dev, MSI_SECONDARY_DOMAIN, map.index, map.index);
-}
-EXPORT_SYMBOL_GPL(pci_ims_free_irq);
-
 /**
  * pci_free_irq_vectors() - Free previously allocated IRQs for a device
  * @dev: the PCI device to operate on
diff --git a/include/linux/pci.h b/include/linux/pci.h
index abbef75b2b92..3deb3e42d990 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -2668,9 +2668,6 @@ struct msi_domain_template;
 
 bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
 			   unsigned int hwsize, void *data);
-struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev, union msi_instance_cookie *icookie,
-				 const struct irq_affinity_desc *affdesc);
-void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map);
 
 #include <linux/dma-mapping.h>
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 3/7] Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 1/7] Revert "PCI/MSI: Provide stubs for IMS functions" Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 2/7] Revert "PCI/MSI: Provide pci_ims_alloc/free_irq()" Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-10 22:13 ` [PATCH v2 4/7] Revert "iommu/amd: Enable PCI/IMS" Bjorn Helgaas
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit 0194425af0c87acaad457989a2c6d90dba58e776.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.  If this is
re-added later, the relevant part of 41efa431244f ("PCI/MSI: Provide stubs
for IMS functions") should be squashed into it.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
---
 drivers/pci/msi/irqdomain.c | 59 -------------------------------------
 include/linux/pci.h         |  5 ----
 2 files changed, 64 deletions(-)

diff --git a/drivers/pci/msi/irqdomain.c b/drivers/pci/msi/irqdomain.c
index cfd84a899c82..03d2dd25790d 100644
--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -355,65 +355,6 @@ bool pci_msi_domain_supports(struct pci_dev *pdev, unsigned int feature_mask,
 	return (supported & feature_mask) == feature_mask;
 }
 
-/**
- * pci_create_ims_domain - Create a secondary IMS domain for a PCI device
- * @pdev:	The PCI device to operate on
- * @template:	The MSI info template which describes the domain
- * @hwsize:	The size of the hardware entry table or 0 if the domain
- *		is purely software managed
- * @data:	Optional pointer to domain specific data to be stored
- *		in msi_domain_info::data
- *
- * Return: True on success, false otherwise
- *
- * An IMS domain is expected to have the following constraints:
- *	- The index space is managed by the core code
- *
- *	- There is no requirement for consecutive index ranges
- *
- *	- The interrupt chip must provide the following callbacks:
- *		- irq_mask()
- *		- irq_unmask()
- *		- irq_write_msi_msg()
- *
- *	- The interrupt chip must provide the following optional callbacks
- *	  when the irq_mask(), irq_unmask() and irq_write_msi_msg() callbacks
- *	  cannot operate directly on hardware, e.g. in the case that the
- *	  interrupt message store is in queue memory:
- *		- irq_bus_lock()
- *		- irq_bus_unlock()
- *
- *	  These callbacks are invoked from preemptible task context and are
- *	  allowed to sleep. In this case the mandatory callbacks above just
- *	  store the information. The irq_bus_unlock() callback is supposed
- *	  to make the change effective before returning.
- *
- *	- Interrupt affinity setting is handled by the underlying parent
- *	  interrupt domain and communicated to the IMS domain via
- *	  irq_write_msi_msg().
- *
- * The domain is automatically destroyed when the PCI device is removed.
- */
-bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
-			   unsigned int hwsize, void *data)
-{
-	struct irq_domain *domain = dev_get_msi_domain(&pdev->dev);
-
-	if (!domain || !irq_domain_is_msi_parent(domain))
-		return false;
-
-	if (template->info.bus_token != DOMAIN_BUS_PCI_DEVICE_IMS ||
-	    !(template->info.flags & MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS) ||
-	    !(template->info.flags & MSI_FLAG_FREE_MSI_DESCS) ||
-	    !template->chip.irq_mask || !template->chip.irq_unmask ||
-	    !template->chip.irq_write_msi_msg || template->chip.irq_set_affinity)
-		return false;
-
-	return msi_create_device_irq_domain(&pdev->dev, MSI_SECONDARY_DOMAIN, template,
-					    hwsize, data, NULL);
-}
-EXPORT_SYMBOL_GPL(pci_create_ims_domain);
-
 /*
  * Users of the generic MSI infrastructure expect a device to have a single ID,
  * so with DMA aliases we have to pick the least-worst compromise. Devices with
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 3deb3e42d990..98fb20bcd054 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -2664,11 +2664,6 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
 void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result err_type);
 #endif
 
-struct msi_domain_template;
-
-bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
-			   unsigned int hwsize, void *data);
-
 #include <linux/dma-mapping.h>
 
 #define pci_printk(level, pdev, fmt, arg...) \
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 4/7] Revert "iommu/amd: Enable PCI/IMS"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
                   ` (2 preceding siblings ...)
  2024-04-10 22:13 ` [PATCH v2 3/7] Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support" Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-11  5:12   ` Tian, Kevin
  2024-04-10 22:13 ` [PATCH v2 5/7] Revert "iommu/vt-d: " Bjorn Helgaas
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit fa5745aca1dc819aee6463a2475b5c277f7cf8f6.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
 drivers/iommu/amd/iommu.c | 17 ++---------------
 1 file changed, 2 insertions(+), 15 deletions(-)

diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index d35c1b8c8e65..31a1a6686329 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -3701,20 +3701,11 @@ static struct irq_chip amd_ir_chip = {
 };
 
 static const struct msi_parent_ops amdvi_msi_parent_ops = {
-	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED |
-				  MSI_FLAG_MULTI_PCI_MSI |
-				  MSI_FLAG_PCI_IMS,
+	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED | MSI_FLAG_MULTI_PCI_MSI,
 	.prefix			= "IR-",
 	.init_dev_msi_info	= msi_parent_init_dev_msi_info,
 };
 
-static const struct msi_parent_ops virt_amdvi_msi_parent_ops = {
-	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED |
-				  MSI_FLAG_MULTI_PCI_MSI,
-	.prefix			= "vIR-",
-	.init_dev_msi_info	= msi_parent_init_dev_msi_info,
-};
-
 int amd_iommu_create_irq_domain(struct amd_iommu *iommu)
 {
 	struct fwnode_handle *fn;
@@ -3732,11 +3723,7 @@ int amd_iommu_create_irq_domain(struct amd_iommu *iommu)
 	irq_domain_update_bus_token(iommu->ir_domain,  DOMAIN_BUS_AMDVI);
 	iommu->ir_domain->flags |= IRQ_DOMAIN_FLAG_MSI_PARENT |
 				   IRQ_DOMAIN_FLAG_ISOLATED_MSI;
-
-	if (amd_iommu_np_cache)
-		iommu->ir_domain->msi_parent_ops = &virt_amdvi_msi_parent_ops;
-	else
-		iommu->ir_domain->msi_parent_ops = &amdvi_msi_parent_ops;
+	iommu->ir_domain->msi_parent_ops = &amdvi_msi_parent_ops;
 
 	return 0;
 }
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 5/7] Revert "iommu/vt-d: Enable PCI/IMS"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
                   ` (3 preceding siblings ...)
  2024-04-10 22:13 ` [PATCH v2 4/7] Revert "iommu/amd: Enable PCI/IMS" Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-11  5:13   ` Tian, Kevin
  2024-04-10 22:13 ` [PATCH v2 6/7] Revert "x86/apic/msi: " Bjorn Helgaas
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit 810531a1af5393f010d6508b1cb48e6650fc5e8f.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
 drivers/iommu/intel/irq_remapping.c | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
index 566297bc87dd..0f64fa72ac4f 100644
--- a/drivers/iommu/intel/irq_remapping.c
+++ b/drivers/iommu/intel/irq_remapping.c
@@ -82,7 +82,7 @@ static const struct irq_domain_ops intel_ir_domain_ops;
 
 static void iommu_disable_irq_remapping(struct intel_iommu *iommu);
 static int __init parse_ioapics_under_ir(void);
-static const struct msi_parent_ops dmar_msi_parent_ops, virt_dmar_msi_parent_ops;
+static const struct msi_parent_ops dmar_msi_parent_ops;
 
 static bool ir_pre_enabled(struct intel_iommu *iommu)
 {
@@ -567,11 +567,7 @@ static int intel_setup_irq_remapping(struct intel_iommu *iommu)
 	irq_domain_update_bus_token(iommu->ir_domain,  DOMAIN_BUS_DMAR);
 	iommu->ir_domain->flags |= IRQ_DOMAIN_FLAG_MSI_PARENT |
 				   IRQ_DOMAIN_FLAG_ISOLATED_MSI;
-
-	if (cap_caching_mode(iommu->cap))
-		iommu->ir_domain->msi_parent_ops = &virt_dmar_msi_parent_ops;
-	else
-		iommu->ir_domain->msi_parent_ops = &dmar_msi_parent_ops;
+	iommu->ir_domain->msi_parent_ops = &dmar_msi_parent_ops;
 
 	ir_table->base = page_address(pages);
 	ir_table->bitmap = bitmap;
@@ -1421,20 +1417,11 @@ static const struct irq_domain_ops intel_ir_domain_ops = {
 };
 
 static const struct msi_parent_ops dmar_msi_parent_ops = {
-	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED |
-				  MSI_FLAG_MULTI_PCI_MSI |
-				  MSI_FLAG_PCI_IMS,
+	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED | MSI_FLAG_MULTI_PCI_MSI,
 	.prefix			= "IR-",
 	.init_dev_msi_info	= msi_parent_init_dev_msi_info,
 };
 
-static const struct msi_parent_ops virt_dmar_msi_parent_ops = {
-	.supported_flags	= X86_VECTOR_MSI_FLAGS_SUPPORTED |
-				  MSI_FLAG_MULTI_PCI_MSI,
-	.prefix			= "vIR-",
-	.init_dev_msi_info	= msi_parent_init_dev_msi_info,
-};
-
 /*
  * Support of Interrupt Remapping Unit Hotplug
  */
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 6/7] Revert "x86/apic/msi: Enable PCI/IMS"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
                   ` (4 preceding siblings ...)
  2024-04-10 22:13 ` [PATCH v2 5/7] Revert "iommu/vt-d: " Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-11  5:13   ` Tian, Kevin
  2024-04-10 22:13 ` [PATCH v2 7/7] Revert "genirq/msi: Provide constants for PCI/IMS support" Bjorn Helgaas
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit 6e24c887732901140f4e82ba2315c2e15f06f1d6.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
 arch/x86/kernel/apic/msi.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
index d9651f15ae4f..340769242dea 100644
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -184,7 +184,6 @@ static int x86_msi_prepare(struct irq_domain *domain, struct device *dev,
 		alloc->type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
 		return 0;
 	case DOMAIN_BUS_PCI_DEVICE_MSIX:
-	case DOMAIN_BUS_PCI_DEVICE_IMS:
 		alloc->type = X86_IRQ_ALLOC_TYPE_PCI_MSIX;
 		return 0;
 	default:
@@ -229,10 +228,6 @@ static bool x86_init_dev_msi_info(struct device *dev, struct irq_domain *domain,
 	case DOMAIN_BUS_PCI_DEVICE_MSI:
 	case DOMAIN_BUS_PCI_DEVICE_MSIX:
 		break;
-	case DOMAIN_BUS_PCI_DEVICE_IMS:
-		if (!(pops->supported_flags & MSI_FLAG_PCI_IMS))
-			return false;
-		break;
 	default:
 		WARN_ON_ONCE(1);
 		return false;
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH v2 7/7] Revert "genirq/msi: Provide constants for PCI/IMS support"
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
                   ` (5 preceding siblings ...)
  2024-04-10 22:13 ` [PATCH v2 6/7] Revert "x86/apic/msi: " Bjorn Helgaas
@ 2024-04-10 22:13 ` Bjorn Helgaas
  2024-04-11  5:14   ` Tian, Kevin
  2024-04-10 22:45 ` [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Thomas Gleixner
  2024-04-12 21:31 ` Bjorn Helgaas
  8 siblings, 1 reply; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-10 22:13 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

From: Bjorn Helgaas <bhelgaas@google.com>

This reverts commit e23d4192bf9b612bce5b24f22719fd3cc6edaa69.

IMS (Interrupt Message Store) support appeared in v6.2, but there are no
users yet.

Remove it for now.  We can add it back when a user comes along.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
 include/linux/irqdomain_defs.h | 1 -
 include/linux/msi.h            | 2 --
 include/linux/msi_api.h        | 1 -
 3 files changed, 4 deletions(-)

diff --git a/include/linux/irqdomain_defs.h b/include/linux/irqdomain_defs.h
index 5c1fe6f1fcde..36653e2ee1c9 100644
--- a/include/linux/irqdomain_defs.h
+++ b/include/linux/irqdomain_defs.h
@@ -25,7 +25,6 @@ enum irq_domain_bus_token {
 	DOMAIN_BUS_PCI_DEVICE_MSIX,
 	DOMAIN_BUS_DMAR,
 	DOMAIN_BUS_AMDVI,
-	DOMAIN_BUS_PCI_DEVICE_IMS,
 	DOMAIN_BUS_DEVICE_MSI,
 	DOMAIN_BUS_WIRED_TO_MSI,
 };
diff --git a/include/linux/msi.h b/include/linux/msi.h
index 26d07e23052e..84859a9aa091 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -573,8 +573,6 @@ enum {
 	MSI_FLAG_MSIX_CONTIGUOUS	= (1 << 19),
 	/* PCI/MSI-X vectors can be dynamically allocated/freed post MSI-X enable */
 	MSI_FLAG_PCI_MSIX_ALLOC_DYN	= (1 << 20),
-	/* Support for PCI/IMS */
-	MSI_FLAG_PCI_IMS		= (1 << 21),
 };
 
 /**
diff --git a/include/linux/msi_api.h b/include/linux/msi_api.h
index 391087ad99b1..5ae72d1912c4 100644
--- a/include/linux/msi_api.h
+++ b/include/linux/msi_api.h
@@ -15,7 +15,6 @@ struct device;
  */
 enum msi_domain_ids {
 	MSI_DEFAULT_DOMAIN,
-	MSI_SECONDARY_DOMAIN,
 	MSI_MAX_DEVICE_IRQDOMAINS,
 };
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
                   ` (6 preceding siblings ...)
  2024-04-10 22:13 ` [PATCH v2 7/7] Revert "genirq/msi: Provide constants for PCI/IMS support" Bjorn Helgaas
@ 2024-04-10 22:45 ` Thomas Gleixner
  2024-04-10 22:46   ` Jason Gunthorpe
  2024-04-12 21:31 ` Bjorn Helgaas
  8 siblings, 1 reply; 15+ messages in thread
From: Thomas Gleixner @ 2024-04-10 22:45 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci, Joerg Roedel, Will Deacon
  Cc: Kevin Tian, Marc Zyngier, Reinette Chatre, Jason Gunthorpe,
	Alex Williamson, Dave Jiang, Megha Dey, Suravee Suthikulpanit,
	Robin Murphy, David Woodhouse, Lu Baolu, iommu, linux-kernel,
	Bjorn Helgaas

On Wed, Apr 10 2024 at 17:13, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
>
> IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> users yet.

Bah.

> Remove it for now.  We can add it back when a user comes along.
>
> I propose to merge this via the PCI tree unless somebody else wants it.

Go wild!

Reviewed-by: Thomas Gleixner <tglx@linutronix.de>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now
  2024-04-10 22:45 ` [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Thomas Gleixner
@ 2024-04-10 22:46   ` Jason Gunthorpe
  0 siblings, 0 replies; 15+ messages in thread
From: Jason Gunthorpe @ 2024-04-10 22:46 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Bjorn Helgaas, linux-pci, Joerg Roedel, Will Deacon, Kevin Tian,
	Marc Zyngier, Reinette Chatre, Alex Williamson, Dave Jiang,
	Megha Dey, Suravee Suthikulpanit, Robin Murphy, David Woodhouse,
	Lu Baolu, iommu, linux-kernel, Bjorn Helgaas

On Thu, Apr 11, 2024 at 12:45:08AM +0200, Thomas Gleixner wrote:
> On Wed, Apr 10 2024 at 17:13, Bjorn Helgaas wrote:
> > From: Bjorn Helgaas <bhelgaas@google.com>
> >
> > IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> > users yet.
> 
> Bah.

Still baking here :|

Not sure what is going on with idxd though.

Jason

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v2 4/7] Revert "iommu/amd: Enable PCI/IMS"
  2024-04-10 22:13 ` [PATCH v2 4/7] Revert "iommu/amd: Enable PCI/IMS" Bjorn Helgaas
@ 2024-04-11  5:12   ` Tian, Kevin
  0 siblings, 0 replies; 15+ messages in thread
From: Tian, Kevin @ 2024-04-11  5:12 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Marc Zyngier, Chatre, Reinette, Jason Gunthorpe,
	Alex Williamson, Jiang, Dave, Megha Dey, Suravee Suthikulpanit,
	Robin Murphy, David Woodhouse, Lu Baolu, iommu, linux-kernel,
	Bjorn Helgaas

> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Thursday, April 11, 2024 6:13 AM
> 
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> This reverts commit fa5745aca1dc819aee6463a2475b5c277f7cf8f6.
> 
> IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> users yet.
> 
> Remove it for now.  We can add it back when a user comes along.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Reviewed-by: Kevin Tian <kevin.tian@intel.com>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v2 5/7] Revert "iommu/vt-d: Enable PCI/IMS"
  2024-04-10 22:13 ` [PATCH v2 5/7] Revert "iommu/vt-d: " Bjorn Helgaas
@ 2024-04-11  5:13   ` Tian, Kevin
  0 siblings, 0 replies; 15+ messages in thread
From: Tian, Kevin @ 2024-04-11  5:13 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Marc Zyngier, Chatre, Reinette, Jason Gunthorpe,
	Alex Williamson, Jiang, Dave, Megha Dey, Suravee Suthikulpanit,
	Robin Murphy, David Woodhouse, Lu Baolu, iommu, linux-kernel,
	Bjorn Helgaas

> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Thursday, April 11, 2024 6:13 AM
> 
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> This reverts commit 810531a1af5393f010d6508b1cb48e6650fc5e8f.
> 
> IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> users yet.
> 
> Remove it for now.  We can add it back when a user comes along.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Reviewed-by: Kevin Tian <kevin.tian@intel.com>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v2 6/7] Revert "x86/apic/msi: Enable PCI/IMS"
  2024-04-10 22:13 ` [PATCH v2 6/7] Revert "x86/apic/msi: " Bjorn Helgaas
@ 2024-04-11  5:13   ` Tian, Kevin
  0 siblings, 0 replies; 15+ messages in thread
From: Tian, Kevin @ 2024-04-11  5:13 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Marc Zyngier, Chatre, Reinette, Jason Gunthorpe,
	Alex Williamson, Jiang, Dave, Megha Dey, Suravee Suthikulpanit,
	Robin Murphy, David Woodhouse, Lu Baolu, iommu, linux-kernel,
	Bjorn Helgaas

> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Thursday, April 11, 2024 6:13 AM
> 
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> This reverts commit 6e24c887732901140f4e82ba2315c2e15f06f1d6.
> 
> IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> users yet.
> 
> Remove it for now.  We can add it back when a user comes along.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Reviewed-by: Kevin Tian <kevin.tian@intel.com>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH v2 7/7] Revert "genirq/msi: Provide constants for PCI/IMS support"
  2024-04-10 22:13 ` [PATCH v2 7/7] Revert "genirq/msi: Provide constants for PCI/IMS support" Bjorn Helgaas
@ 2024-04-11  5:14   ` Tian, Kevin
  0 siblings, 0 replies; 15+ messages in thread
From: Tian, Kevin @ 2024-04-11  5:14 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Marc Zyngier, Chatre, Reinette, Jason Gunthorpe,
	Alex Williamson, Jiang, Dave, Megha Dey, Suravee Suthikulpanit,
	Robin Murphy, David Woodhouse, Lu Baolu, iommu, linux-kernel,
	Bjorn Helgaas

> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Thursday, April 11, 2024 6:13 AM
> 
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> This reverts commit e23d4192bf9b612bce5b24f22719fd3cc6edaa69.
> 
> IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> users yet.
> 
> Remove it for now.  We can add it back when a user comes along.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

Reviewed-by: Kevin Tian <kevin.tian@intel.com>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now
  2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
                   ` (7 preceding siblings ...)
  2024-04-10 22:45 ` [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Thomas Gleixner
@ 2024-04-12 21:31 ` Bjorn Helgaas
  8 siblings, 0 replies; 15+ messages in thread
From: Bjorn Helgaas @ 2024-04-12 21:31 UTC (permalink / raw)
  To: linux-pci, Joerg Roedel, Will Deacon
  Cc: Thomas Gleixner, Kevin Tian, Marc Zyngier, Reinette Chatre,
	Jason Gunthorpe, Alex Williamson, Dave Jiang, Megha Dey,
	Suravee Suthikulpanit, Robin Murphy, David Woodhouse, Lu Baolu,
	iommu, linux-kernel, Bjorn Helgaas

On Wed, Apr 10, 2024 at 05:13:00PM -0500, Bjorn Helgaas wrote:
> From: Bjorn Helgaas <bhelgaas@google.com>
> 
> IMS (Interrupt Message Store) support appeared in v6.2, but there are no
> users yet.
> 
> Remove it for now.  We can add it back when a user comes along.
> 
> I propose to merge this via the PCI tree unless somebody else wants it.
> 
> 
> Changes since v1 (https://lore.kernel.org/linux-pci/20240401232326.1794707-1-helgaas@kernel.org/):
>   - Revert other IMS commits in IOMMU, apic, genirq, suggested by Kevin
> 
> Bjorn Helgaas (7):
>   Revert "PCI/MSI: Provide stubs for IMS functions"
>   Revert "PCI/MSI: Provide pci_ims_alloc/free_irq()"
>   Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support"
>   Revert "iommu/amd: Enable PCI/IMS"
>   Revert "iommu/vt-d: Enable PCI/IMS"
>   Revert "x86/apic/msi: Enable PCI/IMS"
>   Revert "genirq/msi: Provide constants for PCI/IMS support"
> 
>  arch/x86/kernel/apic/msi.c          |  5 ---
>  drivers/iommu/amd/iommu.c           | 17 +--------
>  drivers/iommu/intel/irq_remapping.c | 19 ++--------
>  drivers/pci/msi/api.c               | 50 ------------------------
>  drivers/pci/msi/irqdomain.c         | 59 -----------------------------
>  include/linux/irqdomain_defs.h      |  1 -
>  include/linux/msi.h                 |  2 -
>  include/linux/msi_api.h             |  1 -
>  include/linux/pci.h                 | 26 -------------
>  9 files changed, 5 insertions(+), 175 deletions(-)

I applied this to pci/ims-removal for v6.10.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-04-12 21:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-10 22:13 [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Bjorn Helgaas
2024-04-10 22:13 ` [PATCH v2 1/7] Revert "PCI/MSI: Provide stubs for IMS functions" Bjorn Helgaas
2024-04-10 22:13 ` [PATCH v2 2/7] Revert "PCI/MSI: Provide pci_ims_alloc/free_irq()" Bjorn Helgaas
2024-04-10 22:13 ` [PATCH v2 3/7] Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support" Bjorn Helgaas
2024-04-10 22:13 ` [PATCH v2 4/7] Revert "iommu/amd: Enable PCI/IMS" Bjorn Helgaas
2024-04-11  5:12   ` Tian, Kevin
2024-04-10 22:13 ` [PATCH v2 5/7] Revert "iommu/vt-d: " Bjorn Helgaas
2024-04-11  5:13   ` Tian, Kevin
2024-04-10 22:13 ` [PATCH v2 6/7] Revert "x86/apic/msi: " Bjorn Helgaas
2024-04-11  5:13   ` Tian, Kevin
2024-04-10 22:13 ` [PATCH v2 7/7] Revert "genirq/msi: Provide constants for PCI/IMS support" Bjorn Helgaas
2024-04-11  5:14   ` Tian, Kevin
2024-04-10 22:45 ` [PATCH v2 0/7] PCI/MSI: Remove IMS (Interrupt Message Store) support for now Thomas Gleixner
2024-04-10 22:46   ` Jason Gunthorpe
2024-04-12 21:31 ` Bjorn Helgaas

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).