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