All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>, Marc Zygnier <maz@kernel.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Jason Gunthorpe <jgg@nvidia.com>, Megha Dey <megha.dey@intel.com>,
	Ashok Raj <ashok.raj@intel.com>,
	linux-pci@vger.kernel.org, Cedric Le Goater <clg@kaod.org>,
	Juergen Gross <jgross@suse.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Paul Mackerras <paulus@samba.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	linux-mips@vger.kernel.org, Kalle Valo <kvalo@codeaurora.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org, ath11k@lists.infradead.org,
	Wei Liu <wei.liu@kernel.org>,
	linux-hyperv@vger.kernel.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>
Subject: [patch V2 22/23] genirq/msi: Handle PCI/MSI allocation fail in core code
Date: Mon,  6 Dec 2021 23:27:59 +0100 (CET)	[thread overview]
Message-ID: <20211206210225.046615302@linutronix.de> (raw)
In-Reply-To: 20211206210147.872865823@linutronix.de

Get rid of yet another irqdomain callback and let the core code return the
already available information of how many descriptors could be allocated.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
---
 drivers/pci/msi/irqdomain.c |   13 -------------
 include/linux/msi.h         |    5 +----
 kernel/irq/msi.c            |   29 +++++++++++++++++++++++++----
 3 files changed, 26 insertions(+), 21 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -95,16 +95,6 @@ static int pci_msi_domain_check_cap(stru
 	return 0;
 }
 
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
 static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
 				    struct msi_desc *desc)
 {
@@ -115,7 +105,6 @@ static void pci_msi_domain_set_desc(msi_
 static struct msi_domain_ops pci_msi_domain_ops_default = {
 	.set_desc	= pci_msi_domain_set_desc,
 	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
 };
 
 static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
@@ -129,8 +118,6 @@ static void pci_msi_domain_update_dom_op
 			ops->set_desc = pci_msi_domain_set_desc;
 		if (ops->msi_check == NULL)
 			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
 	}
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -286,7 +286,6 @@ struct msi_domain_info;
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
  * @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
@@ -295,7 +294,7 @@ struct msi_domain_info;
  * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
  * irqdomain.
  *
- * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * @msi_check, @msi_prepare and @set_desc are callbacks used by
  * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
@@ -332,8 +331,6 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    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,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -538,6 +538,27 @@ static bool msi_check_reservation_mode(s
 	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
+static int msi_handle_pci_fail(struct irq_domain *domain, struct msi_desc *desc,
+			       int allocated)
+{
+	switch(domain->bus_token) {
+	case DOMAIN_BUS_PCI_MSI:
+	case DOMAIN_BUS_VMD_MSI:
+		if (IS_ENABLED(CONFIG_PCI_MSI))
+			break;
+		fallthrough;
+	default:
+		return -ENOSPC;
+	}
+
+	/* Let a failed PCI multi MSI allocation retry */
+	if (desc->nvec_used > 1)
+		return 1;
+
+	/* If there was a successful allocation let the caller know */
+	return allocated ? allocated : -ENOSPC;
+}
+
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			    int nvec)
 {
@@ -546,6 +567,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	struct irq_data *irq_data;
 	struct msi_desc *desc;
 	msi_alloc_info_t arg = { };
+	int allocated = 0;
 	int i, ret, virq;
 	bool can_reserve;
 
@@ -560,16 +582,15 @@ int __msi_domain_alloc_irqs(struct irq_d
 					       dev_to_node(dev), &arg, false,
 					       desc->affinity);
 		if (virq < 0) {
-			ret = -ENOSPC;
-			if (ops->handle_error)
-				ret = ops->handle_error(domain, desc, ret);
-			return ret;
+			ret = msi_handle_pci_fail(domain, desc, allocated);
+			goto cleanup;
 		}
 
 		for (i = 0; i < desc->nvec_used; i++) {
 			irq_set_msi_desc_off(virq, i, desc);
 			irq_debugfs_copy_devname(virq + i, dev);
 		}
+		allocated++;
 	}
 
 	can_reserve = msi_check_reservation_mode(domain, info, dev);


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>, Marc Zygnier <maz@kernel.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Kevin Tian <kevin.tian@intel.com>,
	Jason Gunthorpe <jgg@nvidia.com>, Megha Dey <megha.dey@intel.com>,
	Ashok Raj <ashok.raj@intel.com>,
	linux-pci@vger.kernel.org, Cedric Le Goater <clg@kaod.org>,
	Juergen Gross <jgross@suse.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Paul Mackerras <paulus@samba.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	linuxppc-dev@lists.ozlabs.org,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	linux-mips@vger.kernel.org, Kalle Valo <kvalo@codeaurora.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	sparclinux@vger.kernel.org, x86@kernel.org,
	xen-devel@lists.xenproject.org, ath11k@lists.infradead.org,
	Wei Liu <wei.liu@kernel.org>,
	linux-hyperv@vger.kernel.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>
Subject: [patch V2 22/23] genirq/msi: Handle PCI/MSI allocation fail in core code
Date: Mon,  6 Dec 2021 23:27:59 +0100 (CET)	[thread overview]
Message-ID: <20211206210225.046615302@linutronix.de> (raw)
In-Reply-To: 20211206210147.872865823@linutronix.de

Get rid of yet another irqdomain callback and let the core code return the
already available information of how many descriptors could be allocated.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
---
 drivers/pci/msi/irqdomain.c |   13 -------------
 include/linux/msi.h         |    5 +----
 kernel/irq/msi.c            |   29 +++++++++++++++++++++++++----
 3 files changed, 26 insertions(+), 21 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -95,16 +95,6 @@ static int pci_msi_domain_check_cap(stru
 	return 0;
 }
 
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
 static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
 				    struct msi_desc *desc)
 {
@@ -115,7 +105,6 @@ static void pci_msi_domain_set_desc(msi_
 static struct msi_domain_ops pci_msi_domain_ops_default = {
 	.set_desc	= pci_msi_domain_set_desc,
 	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
 };
 
 static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
@@ -129,8 +118,6 @@ static void pci_msi_domain_update_dom_op
 			ops->set_desc = pci_msi_domain_set_desc;
 		if (ops->msi_check == NULL)
 			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
 	}
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -286,7 +286,6 @@ struct msi_domain_info;
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
  * @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
@@ -295,7 +294,7 @@ struct msi_domain_info;
  * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
  * irqdomain.
  *
- * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * @msi_check, @msi_prepare and @set_desc are callbacks used by
  * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
@@ -332,8 +331,6 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    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,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -538,6 +538,27 @@ static bool msi_check_reservation_mode(s
 	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
+static int msi_handle_pci_fail(struct irq_domain *domain, struct msi_desc *desc,
+			       int allocated)
+{
+	switch(domain->bus_token) {
+	case DOMAIN_BUS_PCI_MSI:
+	case DOMAIN_BUS_VMD_MSI:
+		if (IS_ENABLED(CONFIG_PCI_MSI))
+			break;
+		fallthrough;
+	default:
+		return -ENOSPC;
+	}
+
+	/* Let a failed PCI multi MSI allocation retry */
+	if (desc->nvec_used > 1)
+		return 1;
+
+	/* If there was a successful allocation let the caller know */
+	return allocated ? allocated : -ENOSPC;
+}
+
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			    int nvec)
 {
@@ -546,6 +567,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	struct irq_data *irq_data;
 	struct msi_desc *desc;
 	msi_alloc_info_t arg = { };
+	int allocated = 0;
 	int i, ret, virq;
 	bool can_reserve;
 
@@ -560,16 +582,15 @@ int __msi_domain_alloc_irqs(struct irq_d
 					       dev_to_node(dev), &arg, false,
 					       desc->affinity);
 		if (virq < 0) {
-			ret = -ENOSPC;
-			if (ops->handle_error)
-				ret = ops->handle_error(domain, desc, ret);
-			return ret;
+			ret = msi_handle_pci_fail(domain, desc, allocated);
+			goto cleanup;
 		}
 
 		for (i = 0; i < desc->nvec_used; i++) {
 			irq_set_msi_desc_off(virq, i, desc);
 			irq_debugfs_copy_devname(virq + i, dev);
 		}
+		allocated++;
 	}
 
 	can_reserve = msi_check_reservation_mode(domain, info, dev);


WARNING: multiple messages have this Message-ID (diff)
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: linux-hyperv@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
	sparclinux@vger.kernel.org, Wei Liu <wei.liu@kernel.org>,
	Ashok Raj <ashok.raj@intel.com>,
	x86@kernel.org, Christian Borntraeger <borntraeger@de.ibm.com>,
	Bjorn Helgaas <helgaas@kernel.org>,
	Megha Dey <megha.dey@intel.com>, Jason Gunthorpe <jgg@nvidia.com>,
	linux-pci@vger.kernel.org, xen-devel@lists.xenproject.org,
	ath11k@lists.infradead.org, Kevin Tian <kevin.tian@intel.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	Cedric Le Goater <clg@kaod.org>,
	Kalle Valo <kvalo@codeaurora.org>,
	Juergen Gross <jgross@suse.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-mips@vger.kernel.org, Marc Zygnier <maz@kernel.org>,
	linuxppc-dev@lists.ozlabs.org
Subject: [patch V2 22/23] genirq/msi: Handle PCI/MSI allocation fail in core code
Date: Mon,  6 Dec 2021 23:27:59 +0100 (CET)	[thread overview]
Message-ID: <20211206210225.046615302@linutronix.de> (raw)
In-Reply-To: 20211206210147.872865823@linutronix.de

Get rid of yet another irqdomain callback and let the core code return the
already available information of how many descriptors could be allocated.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
---
 drivers/pci/msi/irqdomain.c |   13 -------------
 include/linux/msi.h         |    5 +----
 kernel/irq/msi.c            |   29 +++++++++++++++++++++++++----
 3 files changed, 26 insertions(+), 21 deletions(-)

--- a/drivers/pci/msi/irqdomain.c
+++ b/drivers/pci/msi/irqdomain.c
@@ -95,16 +95,6 @@ static int pci_msi_domain_check_cap(stru
 	return 0;
 }
 
-static int pci_msi_domain_handle_error(struct irq_domain *domain,
-				       struct msi_desc *desc, int error)
-{
-	/* Special handling to support __pci_enable_msi_range() */
-	if (pci_msi_desc_is_multi_msi(desc) && error == -ENOSPC)
-		return 1;
-
-	return error;
-}
-
 static void pci_msi_domain_set_desc(msi_alloc_info_t *arg,
 				    struct msi_desc *desc)
 {
@@ -115,7 +105,6 @@ static void pci_msi_domain_set_desc(msi_
 static struct msi_domain_ops pci_msi_domain_ops_default = {
 	.set_desc	= pci_msi_domain_set_desc,
 	.msi_check	= pci_msi_domain_check_cap,
-	.handle_error	= pci_msi_domain_handle_error,
 };
 
 static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
@@ -129,8 +118,6 @@ static void pci_msi_domain_update_dom_op
 			ops->set_desc = pci_msi_domain_set_desc;
 		if (ops->msi_check == NULL)
 			ops->msi_check = pci_msi_domain_check_cap;
-		if (ops->handle_error == NULL)
-			ops->handle_error = pci_msi_domain_handle_error;
 	}
 }
 
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -286,7 +286,6 @@ struct msi_domain_info;
  * @msi_check:		Callback for verification of the domain/info/dev data
  * @msi_prepare:	Prepare the allocation of the interrupts in the domain
  * @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
@@ -295,7 +294,7 @@ struct msi_domain_info;
  * @get_hwirq, @msi_init and @msi_free are callbacks used by the underlying
  * irqdomain.
  *
- * @msi_check, @msi_prepare, @handle_error and @set_desc are callbacks used by
+ * @msi_check, @msi_prepare and @set_desc are callbacks used by
  * msi_domain_alloc/free_irqs().
  *
  * @domain_alloc_irqs, @domain_free_irqs can be used to override the
@@ -332,8 +331,6 @@ struct msi_domain_ops {
 				       msi_alloc_info_t *arg);
 	void		(*set_desc)(msi_alloc_info_t *arg,
 				    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,
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -538,6 +538,27 @@ static bool msi_check_reservation_mode(s
 	return desc->pci.msi_attrib.is_msix || desc->pci.msi_attrib.can_mask;
 }
 
+static int msi_handle_pci_fail(struct irq_domain *domain, struct msi_desc *desc,
+			       int allocated)
+{
+	switch(domain->bus_token) {
+	case DOMAIN_BUS_PCI_MSI:
+	case DOMAIN_BUS_VMD_MSI:
+		if (IS_ENABLED(CONFIG_PCI_MSI))
+			break;
+		fallthrough;
+	default:
+		return -ENOSPC;
+	}
+
+	/* Let a failed PCI multi MSI allocation retry */
+	if (desc->nvec_used > 1)
+		return 1;
+
+	/* If there was a successful allocation let the caller know */
+	return allocated ? allocated : -ENOSPC;
+}
+
 int __msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
 			    int nvec)
 {
@@ -546,6 +567,7 @@ int __msi_domain_alloc_irqs(struct irq_d
 	struct irq_data *irq_data;
 	struct msi_desc *desc;
 	msi_alloc_info_t arg = { };
+	int allocated = 0;
 	int i, ret, virq;
 	bool can_reserve;
 
@@ -560,16 +582,15 @@ int __msi_domain_alloc_irqs(struct irq_d
 					       dev_to_node(dev), &arg, false,
 					       desc->affinity);
 		if (virq < 0) {
-			ret = -ENOSPC;
-			if (ops->handle_error)
-				ret = ops->handle_error(domain, desc, ret);
-			return ret;
+			ret = msi_handle_pci_fail(domain, desc, allocated);
+			goto cleanup;
 		}
 
 		for (i = 0; i < desc->nvec_used; i++) {
 			irq_set_msi_desc_off(virq, i, desc);
 			irq_debugfs_copy_devname(virq + i, dev);
 		}
+		allocated++;
 	}
 
 	can_reserve = msi_check_reservation_mode(domain, info, dev);


  parent reply	other threads:[~2021-12-06 22:28 UTC|newest]

Thread overview: 200+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-06 22:27 [patch V2 00/23] genirq/msi, PCI/MSI: Spring cleaning - Part 1 Thomas Gleixner
2021-12-06 22:27 ` Thomas Gleixner
2021-12-06 22:27 ` Thomas Gleixner
2021-12-06 22:27 ` [patch V2 01/23] powerpc/4xx: Remove MSI support which never worked Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:21   ` Cédric Le Goater
2021-12-07  7:21     ` Cédric Le Goater
2021-12-07  7:21     ` Cédric Le Goater
2021-12-07 11:36     ` Michael Ellerman
2021-12-07 11:36       ` Michael Ellerman
2021-12-07 11:36       ` Michael Ellerman
2021-12-07 15:50       ` Cédric Le Goater
2021-12-07 15:50         ` Cédric Le Goater
2021-12-07 15:50         ` Cédric Le Goater
2021-12-07 20:42         ` Thomas Gleixner
2021-12-07 20:42           ` Thomas Gleixner
2021-12-07 20:42           ` Thomas Gleixner
2021-12-08 10:44           ` Cédric Le Goater
2021-12-08 10:44             ` Cédric Le Goater
2021-12-08 10:44             ` Cédric Le Goater
2021-12-09 16:07             ` [tip: irq/msi] powerpc/4xx: Complete removal of MSI support tip-bot2 for Cédric Le Goater
2021-12-09 16:07   ` [tip: irq/msi] powerpc/4xx: Remove MSI support which never worked tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 02/23] PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity() Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 20:53   ` Bjorn Helgaas
2021-12-07 20:53     ` Bjorn Helgaas
2021-12-07 20:53     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 03/23] genirq/msi: Guard sysfs code Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:42   ` Greg Kroah-Hartman
2021-12-07  7:42     ` Greg Kroah-Hartman
2021-12-07  7:42     ` Greg Kroah-Hartman
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 04/23] genirq/msi: Remove unused domain callbacks Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27 ` [patch V2 05/23] genirq/msi: Fixup includes Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:43   ` Greg Kroah-Hartman
2021-12-07  7:43     ` Greg Kroah-Hartman
2021-12-07  7:43     ` Greg Kroah-Hartman
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 06/23] PCI/MSI: Make pci_msi_domain_write_msg() static Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 20:54   ` Bjorn Helgaas
2021-12-07 20:54     ` Bjorn Helgaas
2021-12-07 20:54     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 07/23] PCI/MSI: Remove msi_desc_to_pci_sysdata() Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 20:55   ` Bjorn Helgaas
2021-12-07 20:55     ` Bjorn Helgaas
2021-12-07 20:55     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 08/23] PCI/sysfs: Use pci_irq_vector() Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:43   ` Greg Kroah-Hartman
2021-12-07  7:43     ` Greg Kroah-Hartman
2021-12-07  7:43     ` Greg Kroah-Hartman
2021-12-07 20:56   ` Bjorn Helgaas
2021-12-07 20:56     ` Bjorn Helgaas
2021-12-07 20:56     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 09/23] MIPS: Octeon: Use arch_setup_msi_irq() Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 10/23] genirq/msi, treewide: Use a named struct for PCI/MSI attributes Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:44   ` Greg Kroah-Hartman
2021-12-07  7:44     ` Greg Kroah-Hartman
2021-12-07  7:44     ` Greg Kroah-Hartman
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 11/23] x86/hyperv: Refactor hv_msi_domain_free_irqs() Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 12/23] PCI/MSI: Make arch_restore_msi_irqs() less horrible Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 20:56   ` Bjorn Helgaas
2021-12-07 20:56     ` Bjorn Helgaas
2021-12-07 20:56     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 13/23] PCI/MSI: Cleanup include zoo Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 20:57   ` Bjorn Helgaas
2021-12-07 20:57     ` Bjorn Helgaas
2021-12-07 20:57     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 14/23] PCI/MSI: Make msix_update_entries() smarter Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:44   ` Greg Kroah-Hartman
2021-12-07  7:44     ` Greg Kroah-Hartman
2021-12-07  7:44     ` Greg Kroah-Hartman
2021-12-07 20:57   ` Bjorn Helgaas
2021-12-07 20:57     ` Bjorn Helgaas
2021-12-07 20:57     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 15/23] PCI/MSI: Move code into a separate directory Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 20:57   ` Bjorn Helgaas
2021-12-07 20:57     ` Bjorn Helgaas
2021-12-07 20:57     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 16/23] PCI/MSI: Split out CONFIG_PCI_MSI independent part Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:45   ` Greg Kroah-Hartman
2021-12-07  7:45     ` Greg Kroah-Hartman
2021-12-07  7:45     ` Greg Kroah-Hartman
2021-12-07 20:58   ` Bjorn Helgaas
2021-12-07 20:58     ` Bjorn Helgaas
2021-12-07 20:58     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 17/23] PCI/MSI: Split out !IRQDOMAIN code Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:45   ` Greg Kroah-Hartman
2021-12-07  7:45     ` Greg Kroah-Hartman
2021-12-07  7:45     ` Greg Kroah-Hartman
2021-12-07 20:59   ` Bjorn Helgaas
2021-12-07 20:59     ` Bjorn Helgaas
2021-12-07 20:59     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 18/23] PCI/MSI: Split out irqdomain code Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:46   ` Greg Kroah-Hartman
2021-12-07  7:46     ` Greg Kroah-Hartman
2021-12-07  7:46     ` Greg Kroah-Hartman
2021-12-07 21:00   ` Bjorn Helgaas
2021-12-07 21:00     ` Bjorn Helgaas
2021-12-07 21:00     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 19/23] PCI/MSI: Sanitize MSIX table map handling Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07 21:01   ` Bjorn Helgaas
2021-12-07 21:01     ` Bjorn Helgaas
2021-12-07 21:01     ` Bjorn Helgaas
2021-12-09 16:07   ` [tip: irq/msi] PCI/MSI: Sanitize MSI-X " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 20/23] PCI/MSI: Move msi_lock to struct pci_dev Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:47   ` Greg Kroah-Hartman
2021-12-07  7:47     ` Greg Kroah-Hartman
2021-12-07  7:47     ` Greg Kroah-Hartman
2021-12-07 21:01   ` Bjorn Helgaas
2021-12-07 21:01     ` Bjorn Helgaas
2021-12-07 21:01     ` Bjorn Helgaas
2021-12-08 15:29   ` Jason Gunthorpe
2021-12-08 15:29     ` Jason Gunthorpe
2021-12-08 15:29     ` Jason Gunthorpe
2021-12-08 20:56     ` Thomas Gleixner
2021-12-08 20:56       ` Thomas Gleixner
2021-12-08 20:56       ` Thomas Gleixner
2021-12-09 16:06   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` [patch V2 21/23] PCI/MSI: Make pci_msi_domain_check_cap() static Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:47   ` Greg Kroah-Hartman
2021-12-07  7:47     ` Greg Kroah-Hartman
2021-12-07  7:47     ` Greg Kroah-Hartman
2021-12-07 21:01   ` Bjorn Helgaas
2021-12-07 21:01     ` Bjorn Helgaas
2021-12-07 21:01     ` Bjorn Helgaas
2021-12-09 16:06   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:27 ` Thomas Gleixner [this message]
2021-12-06 22:27   ` [patch V2 22/23] genirq/msi: Handle PCI/MSI allocation fail in core code Thomas Gleixner
2021-12-06 22:27   ` Thomas Gleixner
2021-12-07  7:48   ` Greg Kroah-Hartman
2021-12-07  7:48     ` Greg Kroah-Hartman
2021-12-07  7:48     ` Greg Kroah-Hartman
2021-12-07 21:02   ` Bjorn Helgaas
2021-12-07 21:02     ` Bjorn Helgaas
2021-12-07 21:02     ` Bjorn Helgaas
2021-12-09 16:06   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner
2021-12-06 22:28 ` [patch V2 23/23] PCI/MSI: Move descriptor counting on allocation fail to the legacy code Thomas Gleixner
2021-12-06 22:28   ` Thomas Gleixner
2021-12-06 22:28   ` Thomas Gleixner
2021-12-07  7:48   ` Greg Kroah-Hartman
2021-12-07  7:48     ` Greg Kroah-Hartman
2021-12-07  7:48     ` Greg Kroah-Hartman
2021-12-07 21:02   ` Bjorn Helgaas
2021-12-07 21:02     ` Bjorn Helgaas
2021-12-07 21:02     ` Bjorn Helgaas
2021-12-09 16:06   ` [tip: irq/msi] " tip-bot2 for Thomas Gleixner

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=20211206210225.046615302@linutronix.de \
    --to=tglx@linutronix.de \
    --cc=alex.williamson@redhat.com \
    --cc=ashok.raj@intel.com \
    --cc=ath11k@lists.infradead.org \
    --cc=benh@kernel.crashing.org \
    --cc=borntraeger@de.ibm.com \
    --cc=clg@kaod.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hca@linux.ibm.com \
    --cc=helgaas@kernel.org \
    --cc=jgg@nvidia.com \
    --cc=jgross@suse.com \
    --cc=kevin.tian@intel.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maz@kernel.org \
    --cc=megha.dey@intel.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=wei.liu@kernel.org \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.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.