Thomas Bogendoerfer 56af14
From: Haiyang Zhang <haiyangz@microsoft.com>
Thomas Bogendoerfer 56af14
Date: Thu, 19 Jan 2023 12:59:10 -0800
Thomas Bogendoerfer 56af14
Subject: net: mana: Fix IRQ name - add PCI and queue number
Thomas Bogendoerfer 56af14
Patch-mainline: v6.2-rc6
Thomas Bogendoerfer 56af14
Git-commit: 20e3028c39a5bf882e91e717da96d14f1acec40e
Thomas Bogendoerfer 56af14
References: bsc#1207875
Thomas Bogendoerfer 56af14
Thomas Bogendoerfer 56af14
The PCI and queue number info is missing in IRQ names.
Thomas Bogendoerfer 56af14
Thomas Bogendoerfer 56af14
Add PCI and queue number to IRQ names, to allow CPU affinity
Thomas Bogendoerfer 56af14
tuning scripts to work.
Thomas Bogendoerfer 56af14
Thomas Bogendoerfer 56af14
Cc: stable@vger.kernel.org
Thomas Bogendoerfer 56af14
Fixes: ca9c54d2d6a5 ("net: mana: Add a driver for Microsoft Azure Network Adapter (MANA)")
Thomas Bogendoerfer 56af14
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Thomas Bogendoerfer 56af14
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Thomas Bogendoerfer 56af14
Link: https://lore.kernel.org/r/1674161950-19708-1-git-send-email-haiyangz@microsoft.com
Thomas Bogendoerfer 56af14
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Thomas Bogendoerfer 56af14
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer 56af14
---
Thomas Bogendoerfer 56af14
 drivers/net/ethernet/microsoft/mana/gdma.h      |    3 +++
Thomas Bogendoerfer 56af14
 drivers/net/ethernet/microsoft/mana/gdma_main.c |    9 ++++++++-
Thomas Bogendoerfer 56af14
 2 files changed, 11 insertions(+), 1 deletion(-)
Thomas Bogendoerfer 56af14
Thomas Bogendoerfer 56af14
--- a/drivers/net/ethernet/microsoft/mana/gdma.h
Thomas Bogendoerfer 56af14
+++ b/drivers/net/ethernet/microsoft/mana/gdma.h
Thomas Bogendoerfer 56af14
@@ -324,9 +324,12 @@ struct gdma_queue_spec {
Thomas Bogendoerfer 56af14
 	};
Thomas Bogendoerfer 56af14
 };
Thomas Bogendoerfer 56af14
 
Thomas Bogendoerfer 56af14
+#define MANA_IRQ_NAME_SZ 32
Thomas Bogendoerfer 56af14
+
Thomas Bogendoerfer 56af14
 struct gdma_irq_context {
Thomas Bogendoerfer 56af14
 	void (*handler)(void *arg);
Thomas Bogendoerfer 56af14
 	void *arg;
Thomas Bogendoerfer 56af14
+	char name[MANA_IRQ_NAME_SZ];
Thomas Bogendoerfer 56af14
 };
Thomas Bogendoerfer 56af14
 
Thomas Bogendoerfer 56af14
 struct gdma_context {
Thomas Bogendoerfer 56af14
--- a/drivers/net/ethernet/microsoft/mana/gdma_main.c
Thomas Bogendoerfer 56af14
+++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c
Thomas Bogendoerfer c02579
@@ -1238,13 +1238,20 @@ static int mana_gd_setup_irqs(struct pci
Thomas Bogendoerfer 56af14
 		gic->handler = NULL;
Thomas Bogendoerfer 56af14
 		gic->arg = NULL;
Thomas Bogendoerfer 56af14
 
Thomas Bogendoerfer 56af14
+		if (!i)
Thomas Bogendoerfer 56af14
+			snprintf(gic->name, MANA_IRQ_NAME_SZ, "mana_hwc@pci:%s",
Thomas Bogendoerfer 56af14
+				 pci_name(pdev));
Thomas Bogendoerfer 56af14
+		else
Thomas Bogendoerfer 56af14
+			snprintf(gic->name, MANA_IRQ_NAME_SZ, "mana_q%d@pci:%s",
Thomas Bogendoerfer 56af14
+				 i - 1, pci_name(pdev));
Thomas Bogendoerfer 56af14
+
Thomas Bogendoerfer 56af14
 		irq = pci_irq_vector(pdev, i);
Thomas Bogendoerfer 56af14
 		if (irq < 0) {
Thomas Bogendoerfer 56af14
 			err = irq;
Thomas Bogendoerfer c02579
 			goto free_mask;
Thomas Bogendoerfer 56af14
 		}
Thomas Bogendoerfer 56af14
 
Thomas Bogendoerfer 56af14
-		err = request_irq(irq, mana_gd_intr, 0, "mana_intr", gic);
Thomas Bogendoerfer 56af14
+		err = request_irq(irq, mana_gd_intr, 0, gic->name, gic);
Thomas Bogendoerfer 56af14
 		if (err)
Thomas Bogendoerfer c02579
 			goto free_mask;
Thomas Bogendoerfer c02579
 		irq_set_affinity_and_hint(irq, req_mask);