All of lore.kernel.org
 help / color / mirror / Atom feed
From: "tip-bot2 for Thomas Gleixner" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Marc Zyngier <maz@kernel.org>, x86 <x86@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: [tip: x86/irq] irqdomain/msi: Allow to override msi_domain_alloc/free_irqs()
Date: Wed, 16 Sep 2020 15:12:09 -0000	[thread overview]
Message-ID: <160026912915.15536.17959995368676456618.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20200826112333.526797548@linutronix.de>

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

Commit-ID:     43e9e705dd57c466c4bfe32ab8c17db537b89297
Gitweb:        https://git.kernel.org/tip/43e9e705dd57c466c4bfe32ab8c17db537b89297
Author:        Thomas Gleixner <tglx@linutronix.de>
AuthorDate:    Wed, 26 Aug 2020 13:16:57 +02:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Wed, 16 Sep 2020 16:52:37 +02:00

irqdomain/msi: Allow to override msi_domain_alloc/free_irqs()

To support MSI irq domains which do not fit at all into the regular MSI
irqdomain scheme, like the XEN MSI interrupt management for PV/HVM/DOM0,
it's necessary to allow to override the alloc/free implementation.

This is a preperatory step to switch X86 away from arch_*_msi_irqs() and
store the irq domain pointer right in struct device.

No functional change for existing MSI irq domain users.

Aside of the evil XEN wrapper this is also useful for special MSI domains
which need to do extra alloc/free work before/after calling the generic
core function. Work like allocating/freeing MSI descriptors, MSI storage
space etc.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200826112333.526797548@linutronix.de

---
 include/linux/msi.h | 27 +++++++++++++++++-
 kernel/irq/msi.c    | 70 ++++++++++++++++++++++++++++++--------------
 2 files changed, 75 insertions(+), 22 deletions(-)

diff --git a/include/linux/msi.h b/include/linux/msi.h
index a65cc47..0180534 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -241,6 +241,10 @@ struct msi_domain_info;
  * @msi_finish:		Optional callback to finalize the allocation
  * @set_desc:		Set the msi descriptor for an interrupt
  * @handle_error:	Optional error handler if the allocation fails
+ * @domain_alloc_irqs:	Optional function to override the default allocation
+ *			function.
+ * @domain_free_irqs:	Optional function to override the default free
+ *			function.
  *
  * @get_hwirq, @msi_init and @msi_free are callbacks used by
  * msi_create_irq_domain() and related interfaces
@@ -248,6 +252,22 @@ struct msi_domain_info;
  * @msi_check, @msi_prepare, @msi_finish, @set_desc and @handle_error
  * are callbacks used by msi_domain_alloc_irqs() and related
  * interfaces which are based on msi_desc.
+ *
+ * @domain_alloc_irqs, @domain_free_irqs can be used to override the
+ * default allocation/free functions (__msi_domain_alloc/free_irqs). This
+ * is initially for a wrapper around XENs seperate MSI universe which can't
+ * be wrapped into the regular irq domains concepts by mere mortals.  This
+ * allows to universally use msi_domain_alloc/free_irqs without having to
+ * special case XEN all over the place.
+ *
+ * Contrary to other operations @domain_alloc_irqs and @domain_free_irqs
+ * are set to the default implementation if NULL and even when
+ * MSI_FLAG_USE_DEF_DOM_OPS is not set to avoid breaking existing users and
+ * because these callbacks are obviously mandatory.
+ *
+ * This is NOT meant to be abused, but it can be useful to build wrappers
+ * for specialized MSI irq domains which need extra work before and after
+ * calling __msi_domain_alloc_irqs()/__msi_domain_free_irqs().
  */
 struct msi_domain_ops {
 	irq_hw_number_t	(*get_hwirq)(struct msi_domain_info *info,
@@ -270,6 +290,10 @@ struct msi_domain_ops {
 				    struct msi_desc *desc);
 	int		(*handle_error)(struct irq_domain *domain,
 					struct msi_desc *desc, int error);
+	int		(*domain_alloc_irqs)(struct irq_domain *domain,
+					     struct device *dev, int nvec);
+	void		(*domain_free_irqs)(struct irq_domain *domain,
+					    struct device *dev);
 };
 
 /**
@@ -327,8 +351,11 @@ int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
 struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
 					 struct msi_domain_info *info,
 					 struct irq_domain *parent);
+int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
+			    int nvec);
 int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			  int nvec);
+void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
 void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev);
 struct msi_domain_info *msi_get_domain_info(struct irq_domain *domain);
 
diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index 616b958..2c0c4d6 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -229,11 +229,13 @@ static int msi_domain_ops_check(struct irq_domain *domain,
 }
 
 static struct msi_domain_ops msi_domain_ops_default = {
-	.get_hwirq	= msi_domain_ops_get_hwirq,
-	.msi_init	= msi_domain_ops_init,
-	.msi_check	= msi_domain_ops_check,
-	.msi_prepare	= msi_domain_ops_prepare,
-	.set_desc	= msi_domain_ops_set_desc,
+	.get_hwirq		= msi_domain_ops_get_hwirq,
+	.msi_init		= msi_domain_ops_init,
+	.msi_check		= msi_domain_ops_check,
+	.msi_prepare		= msi_domain_ops_prepare,
+	.set_desc		= msi_domain_ops_set_desc,
+	.domain_alloc_irqs	= __msi_domain_alloc_irqs,
+	.domain_free_irqs	= __msi_domain_free_irqs,
 };
 
 static void msi_domain_update_dom_ops(struct msi_domain_info *info)
@@ -245,6 +247,14 @@ static void msi_domain_update_dom_ops(struct msi_domain_info *info)
 		return;
 	}
 
+	if (ops->domain_alloc_irqs == NULL)
+		ops->domain_alloc_irqs = msi_domain_ops_default.domain_alloc_irqs;
+	if (ops->domain_free_irqs == NULL)
+		ops->domain_free_irqs = msi_domain_ops_default.domain_free_irqs;
+
+	if (!(info->flags & MSI_FLAG_USE_DEF_DOM_OPS))
+		return;
+
 	if (ops->get_hwirq == NULL)
 		ops->get_hwirq = msi_domain_ops_default.get_hwirq;
 	if (ops->msi_init == NULL)
@@ -278,8 +288,7 @@ struct irq_domain *msi_create_irq_domain(struct fwnode_handle *fwnode,
 {
 	struct irq_domain *domain;
 
-	if (info->flags & MSI_FLAG_USE_DEF_DOM_OPS)
-		msi_domain_update_dom_ops(info);
+	msi_domain_update_dom_ops(info);
 	if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
 		msi_domain_update_chip_ops(info);
 
@@ -386,17 +395,8 @@ static bool msi_check_reservation_mode(struct irq_domain *domain,
 	return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit;
 }
 
-/**
- * msi_domain_alloc_irqs - Allocate interrupts from a MSI interrupt domain
- * @domain:	The domain to allocate from
- * @dev:	Pointer to device struct of the device for which the interrupts
- *		are allocated
- * @nvec:	The number of interrupts to allocate
- *
- * Returns 0 on success or an error code.
- */
-int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
-			  int nvec)
+int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
+			    int nvec)
 {
 	struct msi_domain_info *info = domain->host_data;
 	struct msi_domain_ops *ops = info->ops;
@@ -490,12 +490,24 @@ cleanup:
 }
 
 /**
- * msi_domain_free_irqs - Free interrupts from a MSI interrupt @domain associated tp @dev
- * @domain:	The domain to managing the interrupts
+ * msi_domain_alloc_irqs - Allocate interrupts from a MSI interrupt domain
+ * @domain:	The domain to allocate from
  * @dev:	Pointer to device struct of the device for which the interrupts
- *		are free
+ *		are allocated
+ * @nvec:	The number of interrupts to allocate
+ *
+ * Returns 0 on success or an error code.
  */
-void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
+int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
+			  int nvec)
+{
+	struct msi_domain_info *info = domain->host_data;
+	struct msi_domain_ops *ops = info->ops;
+
+	return ops->domain_alloc_irqs(domain, dev, nvec);
+}
+
+void __msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
 {
 	struct msi_desc *desc;
 
@@ -513,6 +525,20 @@ void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
 }
 
 /**
+ * __msi_domain_free_irqs - Free interrupts from a MSI interrupt @domain associated tp @dev
+ * @domain:	The domain to managing the interrupts
+ * @dev:	Pointer to device struct of the device for which the interrupts
+ *		are free
+ */
+void msi_domain_free_irqs(struct irq_domain *domain, struct device *dev)
+{
+	struct msi_domain_info *info = domain->host_data;
+	struct msi_domain_ops *ops = info->ops;
+
+	return ops->domain_free_irqs(domain, dev);
+}
+
+/**
  * msi_get_domain_info - Get the MSI interrupt domain info for @domain
  * @domain:	The interrupt domain to retrieve data from
  *

  parent reply	other threads:[~2020-09-16 15:40 UTC|newest]

Thread overview: 294+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-26 11:16 [patch V2 00/46] x86, PCI, XEN, genirq ...: Prepare for device MSI Thomas Gleixner
2020-08-26 11:16 ` Thomas Gleixner
2020-08-26 11:16 ` [patch V2 01/46] iommu/amd: Prevent NULL pointer dereference Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-27 14:57   ` Joerg Roedel
2020-08-27 14:57     ` Joerg Roedel
2020-08-26 11:16 ` [patch V2 02/46] x86/init: Remove unused init ops Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 03/46] PCI: vmd: Dont abuse vector irqomain as parent Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 04/46] genirq/chip: Use the first chip in irq_chip_compose_msi_msg() Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 19:50   ` Marc Zyngier
2020-08-26 19:50     ` Marc Zyngier
2020-08-26 21:19     ` Thomas Gleixner
2020-08-26 21:19       ` Thomas Gleixner
2020-08-26 21:32       ` Marc Zyngier
2020-08-26 21:32         ` Marc Zyngier
2020-08-26 11:16 ` [patch V2 05/46] x86/msi: Move compose message callback where it belongs Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 06/46] x86/msi: Remove pointless vcpu_affinity callback Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 07/46] x86/irq: Rename X86_IRQ_ALLOC_TYPE_MSI* to reflect PCI dependency Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] x86_irq_Rename_X86_IRQ_ALLOC_TYPE_MSI_to_reflect_PCI_dependency tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 08/46] x86/irq: Add allocation type for parent domain retrieval Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 09/46] iommu/vt-d: Consolidate irq domain getter Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 10/46] iommu/amd: " Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 11/46] iommu/irq_remapping: Consolidate irq domain lookup Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 12/46] x86/irq: Prepare consolidation of irq_alloc_info Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 13/46] x86/msi: Consolidate HPET allocation Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 14/46] x86/ioapic: Consolidate IOAPIC allocation Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-08 13:35   ` Wei Liu
2020-09-08 13:35     ` Wei Liu
2020-09-16 15:12   ` [tip: x86/irq] x86_ioapic_Consolidate_IOAPIC_allocation tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 15/46] x86/irq: Consolidate DMAR irq allocation Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 16:50   ` Dey, Megha
2020-08-26 16:50     ` Dey, Megha
2020-08-26 16:50     ` Dey, Megha
2020-08-26 18:32     ` Thomas Gleixner
2020-08-26 18:32       ` Thomas Gleixner
2020-08-26 20:50       ` Thomas Gleixner
2020-08-26 20:50         ` Thomas Gleixner
2020-08-28  0:12         ` Dey, Megha
2020-08-28  0:12           ` Dey, Megha
2020-08-28  0:12           ` Dey, Megha
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 16/46] x86/irq: Consolidate UV domain allocation Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 17/46] PCI/MSI: Rework pci_msi_domain_calc_hwirq() Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 20:24   ` Marc Zyngier
2020-08-26 20:24     ` Marc Zyngier
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 18/46] x86/msi: Consolidate MSI allocation Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-08 13:36   ` Wei Liu
2020-09-08 13:36     ` Wei Liu
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 19/46] x86/msi: Use generic MSI domain ops Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 20:21   ` Marc Zyngier
2020-08-26 20:21     ` Marc Zyngier
2020-08-26 20:43     ` Thomas Gleixner
2020-08-26 20:43       ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 20/46] x86/irq: Move apic_post_init() invocation to one place Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 21/46] x86/pci: Reducde #ifdeffery in PCI init code Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 22/46] x86/irq: Initialize PCI/MSI domain at PCI init time Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 23/46] irqdomain/msi: Provide DOMAIN_BUS_VMD_MSI Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 20:42   ` Marc Zyngier
2020-08-26 20:42     ` Marc Zyngier
2020-08-26 20:57     ` Derrick, Jonathan
2020-08-26 20:57       ` Derrick, Jonathan
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 24/46] PCI: vmd: Mark VMD irqdomain with DOMAIN_BUS_VMD_MSI Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 20:47   ` Marc Zyngier
2020-08-26 20:47     ` Marc Zyngier
2020-08-31 14:39   ` Jason Gunthorpe
2020-08-31 14:39     ` Jason Gunthorpe
2020-09-30 12:45     ` Derrick, Jonathan
2020-09-30 12:45       ` Derrick, Jonathan
2020-09-30 12:57       ` Jason Gunthorpe
2020-09-30 12:57         ` Jason Gunthorpe
2020-09-30 13:08         ` Derrick, Jonathan
2020-09-30 13:08           ` Derrick, Jonathan
2020-09-30 18:47           ` Jason Gunthorpe
2020-09-30 18:47             ` Jason Gunthorpe
2020-09-16 15:12   ` [tip: x86/irq] PCI_vmd_Mark_VMD_irqdomain_with_DOMAIN_BUS_VMD_MSI tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 25/46] PCI/MSI: Provide pci_dev_has_special_msi_domain() helper Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 26/46] x86/xen: Make xen_msi_init() static and rename it to xen_hvm_msi_init() Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 27/46] x86/xen: Rework MSI teardown Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-27  7:46   ` Jürgen Groß
2020-08-27  7:46     ` Jürgen Groß
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 28/46] x86/xen: Consolidate XEN-MSI init Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-27  7:47   ` Jürgen Groß
2020-08-27  7:47     ` Jürgen Groß
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:16 ` [patch V2 29/46] irqdomain/msi: Allow to override msi_domain_alloc/free_irqs() Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-08-26 19:06   ` Marc Zyngier
2020-08-26 19:06     ` Marc Zyngier
2020-08-26 19:47     ` Thomas Gleixner
2020-08-26 19:47       ` Thomas Gleixner
2020-08-26 21:33       ` Marc Zyngier
2020-08-26 21:33         ` Marc Zyngier
2020-08-28  0:24   ` Dey, Megha
2020-08-28  0:24     ` Dey, Megha
2020-08-28  0:24     ` Dey, Megha
2020-09-16 15:12   ` tip-bot2 for Thomas Gleixner [this message]
2020-08-26 11:16 ` [patch V2 30/46] x86/xen: Wrap XEN MSI management into irqdomain Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2023-01-15 14:12   ` [patch V2 30/46] " David Woodhouse
2023-01-15 20:27     ` David Woodhouse
2020-08-26 11:16 ` [patch V2 31/46] iommm/vt-d: Store irq domain in struct device Thomas Gleixner
2020-08-26 11:16   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 32/46] iommm/amd: " Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 33/46] x86/pci: Set default irq domain in pcibios_add_device() Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 34/46] PCI/MSI: Make arch_.*_msi_irq[s] fallbacks selectable Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 15:34   ` kernel test robot
2020-08-26 15:53   ` Thomas Gleixner
2020-08-26 15:53     ` Thomas Gleixner
2020-08-26 16:23   ` kernel test robot
2020-08-26 21:14   ` Marc Zyngier
2020-08-26 21:14     ` Marc Zyngier
2020-08-26 21:27     ` Thomas Gleixner
2020-08-26 21:27       ` Thomas Gleixner
2020-08-27 18:20   ` Bjorn Helgaas
2020-08-27 18:20     ` Bjorn Helgaas
2020-08-28 11:21     ` Lorenzo Pieralisi
2020-08-28 11:21       ` Lorenzo Pieralisi
2020-08-28 12:19       ` Jason Gunthorpe
2020-08-28 12:19         ` Jason Gunthorpe
2020-08-28 12:19         ` Jason Gunthorpe
2020-08-28 12:19         ` Jason Gunthorpe
2020-08-28 12:47         ` Marc Zyngier
2020-08-28 12:47           ` Marc Zyngier
2020-08-28 12:54           ` Jason Gunthorpe
2020-08-28 12:54             ` Jason Gunthorpe
2020-08-28 12:54             ` Jason Gunthorpe
2020-08-28 13:52             ` Marc Zyngier
2020-08-28 13:52               ` Marc Zyngier
2020-08-28 18:29     ` Thomas Gleixner
2020-08-28 18:29       ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-09-25 13:54   ` [patch V2 34/46] " Qian Cai
2020-09-25 13:54     ` Qian Cai
2020-09-25 13:54     ` Qian Cai
2020-09-26 12:38     ` Vasily Gorbik
2020-09-26 12:38       ` Vasily Gorbik
2020-09-28 10:11       ` Thomas Gleixner
2020-09-28 10:11         ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 35/46] x86/irq: Cleanup the arch_*_msi_irqs() leftovers Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 36/46] x86/irq: Make most MSI ops XEN private Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 37/46] iommu/vt-d: Remove domain search for PCI/MSI[X] Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 38/46] iommu/amd: Remove domain search for PCI/MSI Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-09-16 15:12   ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-08-26 11:17 ` [patch V2 39/46] x86/irq: Add DEV_MSI allocation type Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 40/46] x86/msi: Rename and rework pci_msi_prepare() to cover non-PCI MSI Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 41/46] platform-msi: Provide default irq_chip:: Ack Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 21:25   ` Marc Zyngier
2020-08-26 21:25     ` Marc Zyngier
2020-08-26 11:17 ` [patch V2 42/46] genirq/proc: Take buslock on affinity write Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 43/46] genirq/msi: Provide and use msi_domain_set_default_info_flags() Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-27  8:17   ` Marc Zyngier
2020-08-27  8:17     ` Marc Zyngier
2020-08-28 18:42     ` Thomas Gleixner
2020-08-28 18:42       ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 44/46] platform-msi: Add device MSI infrastructure Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 45/46] irqdomain/msi: Provide msi_alloc/free_store() callbacks Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-26 11:17 ` [patch V2 46/46] irqchip: Add IMS (Interrupt Message Storm) driver - NOT FOR MERGING Thomas Gleixner
2020-08-26 11:17   ` Thomas Gleixner
2020-08-31 14:45   ` Jason Gunthorpe
2020-08-31 14:45     ` Jason Gunthorpe
2020-08-28 11:41 ` [patch V2 00/46] x86, PCI, XEN, genirq ...: Prepare for device MSI Joerg Roedel
2020-08-28 11:41   ` Joerg Roedel
2020-08-31  0:51 ` Lu Baolu
2020-08-31  0:51   ` Lu Baolu
2020-08-31  0:51   ` Lu Baolu
2020-08-31  7:10   ` Thomas Gleixner
2020-08-31  7:10     ` Thomas Gleixner
2020-08-31  7:29     ` Lu Baolu
2020-08-31  7:29       ` Lu Baolu
2020-08-31  7:29       ` Lu Baolu
2020-09-01  9:06 ` Boqun Feng
2020-09-01  9:06   ` Boqun Feng
2020-09-01  9:06   ` Boqun Feng
2020-09-03 16:35 ` Raj, Ashok
2020-09-03 16:35   ` Raj, Ashok
2020-09-03 18:12   ` Thomas Gleixner
2020-09-03 18:12     ` Thomas Gleixner
2020-09-08  3:39 ` Russ Anderson
2020-09-08  3:39   ` Russ Anderson
2020-09-25 15:29 ` Qian Cai
2020-09-25 15:29   ` Qian Cai
2020-09-25 15:29   ` Qian Cai
2020-09-25 15:49   ` Peter Zijlstra
2020-09-25 15:49     ` Peter Zijlstra
2020-09-25 23:14     ` Thomas Gleixner
2020-09-25 23:14       ` Thomas Gleixner
2020-09-27  8:46       ` [PATCH] x86/apic/msi: Unbreak DMAR and HPET MSI Thomas Gleixner
2020-09-27  8:46         ` Thomas Gleixner
2020-09-27 19:57         ` [tip: x86/irq] " tip-bot2 for Thomas Gleixner
2020-09-29 23:03 ` [patch V2 00/46] x86, PCI, XEN, genirq ...: Prepare for device MSI Dey, Megha
2020-09-29 23:03   ` Dey, Megha
2020-09-30  6:41   ` Thomas Gleixner
2020-09-30  6:41     ` Thomas Gleixner
2020-09-30 11:43     ` Jason Gunthorpe
2020-09-30 11:43       ` Jason Gunthorpe
2020-09-30 15:20       ` Thomas Gleixner
2020-09-30 15:20         ` Thomas Gleixner
2020-09-30 17:25         ` Dey, Megha
2020-09-30 17:25           ` Dey, Megha
2020-09-30 18:11           ` Thomas Gleixner
2020-09-30 18:11             ` Thomas Gleixner
2020-11-12 12:55 ` REGRESSION: " Jason Gunthorpe
2020-11-12 12:55   ` Jason Gunthorpe
2020-11-12 14:15   ` Thomas Gleixner
2020-11-12 14:15     ` Thomas Gleixner
2020-11-12 15:18     ` Thomas Gleixner
2020-11-12 15:18       ` Thomas Gleixner
2020-11-12 19:15       ` iommu/vt-d: Cure VF irqdomain hickup Thomas Gleixner
2020-11-12 19:15         ` Thomas Gleixner
2020-11-12 21:34         ` Thomas Gleixner
2020-11-12 21:34           ` Thomas Gleixner
2020-11-13  9:19           ` Marc Zyngier
2020-11-13  9:19             ` Marc Zyngier
2020-11-13 13:52             ` Thomas Gleixner
2020-11-13 13:52               ` Thomas Gleixner
2020-11-13  7:20         ` Lu Baolu
2020-11-13  7:20           ` Lu Baolu
2020-11-16  9:47         ` Geert Uytterhoeven
2020-11-16  9:47           ` Geert Uytterhoeven
2020-11-16 12:50           ` Thomas Gleixner
2020-11-16 12:50             ` Thomas Gleixner
2020-11-16 12:50           ` Lu Baolu
2020-11-16 12:50             ` Lu Baolu
2020-11-16 23:22         ` Jason Gunthorpe
2020-11-16 23:22           ` Jason Gunthorpe

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=160026912915.15536.17959995368676456618.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=maz@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.