Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d94a8689 authored by Arputham Benjamin's avatar Arputham Benjamin Committed by Roland Dreier
Browse files

IB/mthca: Distinguish multiple devices in /proc/interrupts



When the mthca driver uses the same name for interrupts for every
device in the system.  This can make it very confusing trying to work
out exactly which device MSI-X interrupts are for.  Change the driver
to add the PCI name of the device to the interrupt name.

Signed-off-by: default avatarArputham Benjamin <abenjamin@sgi.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent ffe063f3
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -829,27 +829,34 @@ int mthca_init_eq_table(struct mthca_dev *dev)

	if (dev->mthca_flags & MTHCA_FLAG_MSI_X) {
		static const char *eq_name[] = {
			[MTHCA_EQ_COMP]  = DRV_NAME " (comp)",
			[MTHCA_EQ_ASYNC] = DRV_NAME " (async)",
			[MTHCA_EQ_CMD]   = DRV_NAME " (cmd)"
			[MTHCA_EQ_COMP]  = DRV_NAME "-comp",
			[MTHCA_EQ_ASYNC] = DRV_NAME "-async",
			[MTHCA_EQ_CMD]   = DRV_NAME "-cmd"
		};

		for (i = 0; i < MTHCA_NUM_EQ; ++i) {
			snprintf(dev->eq_table.eq[i].irq_name,
				 IB_DEVICE_NAME_MAX,
				 "%s@pci:%s", eq_name[i],
				 pci_name(dev->pdev));
			err = request_irq(dev->eq_table.eq[i].msi_x_vector,
					  mthca_is_memfree(dev) ?
					  mthca_arbel_msi_x_interrupt :
					  mthca_tavor_msi_x_interrupt,
					  0, eq_name[i], dev->eq_table.eq + i);
					  0, dev->eq_table.eq[i].irq_name,
					  dev->eq_table.eq + i);
			if (err)
				goto err_out_cmd;
			dev->eq_table.eq[i].have_irq = 1;
		}
	} else {
		snprintf(dev->eq_table.eq[0].irq_name, IB_DEVICE_NAME_MAX,
			 DRV_NAME "@pci:%s", pci_name(dev->pdev));
		err = request_irq(dev->pdev->irq,
				  mthca_is_memfree(dev) ?
				  mthca_arbel_interrupt :
				  mthca_tavor_interrupt,
				  IRQF_SHARED, DRV_NAME, dev);
				  IRQF_SHARED, dev->eq_table.eq[0].irq_name, dev);
		if (err)
			goto err_out_cmd;
		dev->eq_table.have_irq = 1;
+1 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ struct mthca_eq {
	int                    nent;
	struct mthca_buf_list *page_list;
	struct mthca_mr        mr;
	char		       irq_name[IB_DEVICE_NAME_MAX];
};

struct mthca_av;