* [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking
@ 2016-11-17 23:29 Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 1/5] PCI: Add Mellanox device IDs Bjorn Helgaas
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-17 23:29 UTC (permalink / raw)
To: Noa Osherovich; +Cc: linux-pci, majd, gwshan
Maybe the third time is the charm. This is basically the v1 you posted,
but I added an mlx4 update to use the new device ID definitions. That way
grep and cscope will find the ID both places, so we can match the quirk
with the related driver.
This is on the pci/virtualization branch. And I did build it this time.
v2 -> v3
- Add device ID definitions to pci_ids.h (from original patch of Nov 1)
- Use new definitions in mlx4 driver (new patch)
- Use new definitions in quirks (as in v1 patches)
v1 -> v2 (pushed to pci/virtualization branch but not posted on list)
- Bjorn removed device ID definitions (which broke build)
- Bjorn reordered so Mellanox wasn't in the middle of other quirk list
- Bjorn moved pci_disable_device() to end of quirk
v0 -> v1
Fixes according to Gavin Shan's comments:
- Patch numbering was wrong
- Fixed logic of mellanox_check_broken_intx_masking
---
Bjorn Helgaas (1):
net/mlx4_core: Use device ID defines
Noa Osherovich (4):
PCI: Add Mellanox device IDs
PCI: Convert broken INTx masking quirks from HEADER to FINAL
PCI: Convert Mellanox broken INTx quirks to be for listed devices only
PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
drivers/net/ethernet/mellanox/mlx4/main.c | 78 +++++++-------
drivers/pci/quirks.c | 159 ++++++++++++++++++++++-------
include/linux/pci_ids.h | 27 ++++-
3 files changed, 181 insertions(+), 83 deletions(-)
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v3 1/5] PCI: Add Mellanox device IDs
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
@ 2016-11-17 23:30 ` Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 2/5] net/mlx4_core: Use device ID defines Bjorn Helgaas
` (4 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-17 23:30 UTC (permalink / raw)
To: Noa Osherovich; +Cc: linux-pci, majd, gwshan
From: Noa Osherovich <noaos@mellanox.com>
Add Mellanox device IDs for use by the mlx4 driver and INTx quirks.
[bhelgaas: sorted and adapted from
http://lkml.kernel.org/r/1478011644-12080-1-git-send-email-noaos@mellanox.com]
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
include/linux/pci_ids.h | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index c58752f..f020ab4 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2256,12 +2256,29 @@
#define PCI_DEVICE_ID_ZOLTRIX_2BD0 0x2bd0
#define PCI_VENDOR_ID_MELLANOX 0x15b3
-#define PCI_DEVICE_ID_MELLANOX_TAVOR 0x5a44
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX3 0x1003
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO 0x1007
+#define PCI_DEVICE_ID_MELLANOX_CONNECTIB 0x1011
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX4 0x1013
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX 0x1015
+#define PCI_DEVICE_ID_MELLANOX_TAVOR 0x5a44
#define PCI_DEVICE_ID_MELLANOX_TAVOR_BRIDGE 0x5a46
-#define PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT 0x6278
-#define PCI_DEVICE_ID_MELLANOX_ARBEL 0x6282
-#define PCI_DEVICE_ID_MELLANOX_SINAI_OLD 0x5e8c
-#define PCI_DEVICE_ID_MELLANOX_SINAI 0x6274
+#define PCI_DEVICE_ID_MELLANOX_SINAI_OLD 0x5e8c
+#define PCI_DEVICE_ID_MELLANOX_SINAI 0x6274
+#define PCI_DEVICE_ID_MELLANOX_ARBEL_COMPAT 0x6278
+#define PCI_DEVICE_ID_MELLANOX_ARBEL 0x6282
+#define PCI_DEVICE_ID_MELLANOX_HERMON_SDR 0x6340
+#define PCI_DEVICE_ID_MELLANOX_HERMON_DDR 0x634a
+#define PCI_DEVICE_ID_MELLANOX_HERMON_QDR 0x6354
+#define PCI_DEVICE_ID_MELLANOX_HERMON_EN 0x6368
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX_EN 0x6372
+#define PCI_DEVICE_ID_MELLANOX_HERMON_DDR_GEN2 0x6732
+#define PCI_DEVICE_ID_MELLANOX_HERMON_QDR_GEN2 0x673c
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_5_GEN2 0x6746
+#define PCI_DEVICE_ID_MELLANOX_HERMON_EN_GEN2 0x6750
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_T_GEN2 0x675a
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_GEN2 0x6764
+#define PCI_DEVICE_ID_MELLANOX_CONNECTX2 0x676e
#define PCI_VENDOR_ID_DFI 0x15bd
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 2/5] net/mlx4_core: Use device ID defines
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 1/5] PCI: Add Mellanox device IDs Bjorn Helgaas
@ 2016-11-17 23:30 ` Bjorn Helgaas
2016-11-20 7:08 ` Noa Osherovich
2016-11-17 23:30 ` [PATCH v3 3/5] PCI: Convert broken INTx masking quirks from HEADER to FINAL Bjorn Helgaas
` (3 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-17 23:30 UTC (permalink / raw)
To: Noa Osherovich; +Cc: linux-pci, majd, gwshan
We added a bunch of new Mellanox device ID definitions because they'll be
used by INTx quirks. Use them in the mlx4 ID table also so grep can find
both places.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
---
drivers/net/ethernet/mellanox/mlx4/main.c | 78 ++++++++++++++---------------
1 file changed, 37 insertions(+), 41 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index 7183ac4..672e0a2e 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -4012,49 +4012,45 @@ int mlx4_restart_one(struct pci_dev *pdev)
return err;
}
+#define MLX_SP(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_FORCE_SENSE_PORT }
+#define MLX_VF(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_IS_VF }
+#define MLX_GN(id) { PCI_VDEVICE(MELLANOX, id), 0 }
+
static const struct pci_device_id mlx4_pci_table[] = {
- /* MT25408 "Hermon" SDR */
- { PCI_VDEVICE(MELLANOX, 0x6340), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25408 "Hermon" DDR */
- { PCI_VDEVICE(MELLANOX, 0x634a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25408 "Hermon" QDR */
- { PCI_VDEVICE(MELLANOX, 0x6354), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25408 "Hermon" DDR PCIe gen2 */
- { PCI_VDEVICE(MELLANOX, 0x6732), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25408 "Hermon" QDR PCIe gen2 */
- { PCI_VDEVICE(MELLANOX, 0x673c), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25408 "Hermon" EN 10GigE */
- { PCI_VDEVICE(MELLANOX, 0x6368), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25408 "Hermon" EN 10GigE PCIe gen2 */
- { PCI_VDEVICE(MELLANOX, 0x6750), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25458 ConnectX EN 10GBASE-T 10GigE */
- { PCI_VDEVICE(MELLANOX, 0x6372), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
- { PCI_VDEVICE(MELLANOX, 0x675a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT26468 ConnectX EN 10GigE PCIe gen2*/
- { PCI_VDEVICE(MELLANOX, 0x6764), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */
- { PCI_VDEVICE(MELLANOX, 0x6746), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT26478 ConnectX2 40GigE PCIe gen2 */
- { PCI_VDEVICE(MELLANOX, 0x676e), MLX4_PCI_DEV_FORCE_SENSE_PORT },
- /* MT25400 Family [ConnectX-2 Virtual Function] */
- { PCI_VDEVICE(MELLANOX, 0x1002), MLX4_PCI_DEV_IS_VF },
+ /* MT25408 "Hermon" */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_SDR), /* SDR */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR), /* DDR */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR), /* QDR */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR_GEN2), /* DDR Gen2 */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR_GEN2), /* QDR Gen2 */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN), /* EN 10GigE */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN_GEN2), /* EN 10GigE Gen2 */
+ /* MT25458 ConnectX EN 10GBASE-T */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN),
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_T_GEN2), /* Gen2 */
+ /* MT26468 ConnectX EN 10GigE PCIe Gen2*/
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_GEN2),
+ /* MT26438 ConnectX EN 40GigE PCIe Gen2 5GT/s */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_5_GEN2),
+ /* MT26478 ConnectX2 40GigE PCIe Gen2 */
+ MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX2),
+ /* MT25400 Family [ConnectX-2] */
+ MLX_VF(0x1002), /* Virtual Function */
/* MT27500 Family [ConnectX-3] */
- { PCI_VDEVICE(MELLANOX, 0x1003), 0 },
- /* MT27500 Family [ConnectX-3 Virtual Function] */
- { PCI_VDEVICE(MELLANOX, 0x1004), MLX4_PCI_DEV_IS_VF },
- { PCI_VDEVICE(MELLANOX, 0x1005), 0 }, /* MT27510 Family */
- { PCI_VDEVICE(MELLANOX, 0x1006), 0 }, /* MT27511 Family */
- { PCI_VDEVICE(MELLANOX, 0x1007), 0 }, /* MT27520 Family */
- { PCI_VDEVICE(MELLANOX, 0x1008), 0 }, /* MT27521 Family */
- { PCI_VDEVICE(MELLANOX, 0x1009), 0 }, /* MT27530 Family */
- { PCI_VDEVICE(MELLANOX, 0x100a), 0 }, /* MT27531 Family */
- { PCI_VDEVICE(MELLANOX, 0x100b), 0 }, /* MT27540 Family */
- { PCI_VDEVICE(MELLANOX, 0x100c), 0 }, /* MT27541 Family */
- { PCI_VDEVICE(MELLANOX, 0x100d), 0 }, /* MT27550 Family */
- { PCI_VDEVICE(MELLANOX, 0x100e), 0 }, /* MT27551 Family */
- { PCI_VDEVICE(MELLANOX, 0x100f), 0 }, /* MT27560 Family */
- { PCI_VDEVICE(MELLANOX, 0x1010), 0 }, /* MT27561 Family */
+ MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3),
+ MLX_VF(0x1004), /* Virtual Function */
+ MLX_GN(0x1005), /* MT27510 Family */
+ MLX_GN(0x1006), /* MT27511 Family */
+ MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO), /* MT27520 Family */
+ MLX_GN(0x1008), /* MT27521 Family */
+ MLX_GN(0x1009), /* MT27530 Family */
+ MLX_GN(0x100a), /* MT27531 Family */
+ MLX_GN(0x100b), /* MT27540 Family */
+ MLX_GN(0x100c), /* MT27541 Family */
+ MLX_GN(0x100d), /* MT27550 Family */
+ MLX_GN(0x100e), /* MT27551 Family */
+ MLX_GN(0x100f), /* MT27560 Family */
+ MLX_GN(0x1010), /* MT27561 Family */
{ 0, }
};
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 3/5] PCI: Convert broken INTx masking quirks from HEADER to FINAL
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 1/5] PCI: Add Mellanox device IDs Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 2/5] net/mlx4_core: Use device ID defines Bjorn Helgaas
@ 2016-11-17 23:30 ` Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 4/5] PCI: Convert Mellanox broken INTx quirks to be for listed devices only Bjorn Helgaas
` (2 subsequent siblings)
5 siblings, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-17 23:30 UTC (permalink / raw)
To: Noa Osherovich; +Cc: linux-pci, majd, gwshan
From: Noa Osherovich <noaos@mellanox.com>
Convert all quirk_broken_intx_masking() quirks from HEADER to FINAL.
The quirk sets dev->broken_intx_masking, which is only used by
pci_intx_mask_supported(), which is not needed until after FINAL
quirks have been run.
[bhelgaas: changelog]
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
drivers/pci/quirks.c | 72 +++++++++++++++++++++++++-------------------------
1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index c232729..85048fd 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3146,53 +3146,53 @@ static void quirk_broken_intx_masking(struct pci_dev *dev)
{
dev->broken_intx_masking = 1;
}
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CHELSIO, 0x0030,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
- quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CHELSIO, 0x0030,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
+ quirk_broken_intx_masking);
/*
* Realtek RTL8169 PCI Gigabit Ethernet Controller (rev 10)
* Subsystem: Realtek RTL8169/8110 Family PCI Gigabit Ethernet NIC
*
* RTL8110SC - Fails under PCI device assignment using DisINTx masking.
*/
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_REALTEK, 0x8169,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
- quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REALTEK, 0x8169,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
+ quirk_broken_intx_masking);
/*
* Intel i40e (XL710/X710) 10/20/40GbE NICs all have broken INTx masking,
* DisINTx can be set but the interrupt status bit is non-functional.
*/
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1572,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1574,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1580,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1581,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1583,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1584,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1585,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1586,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1587,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1588,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1589,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x37d0,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x37d1,
- quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x37d2,
- quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1572,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1574,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1580,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1581,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1583,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1584,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1585,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1586,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1587,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1588,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1589,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d0,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d1,
+ quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d2,
+ quirk_broken_intx_masking);
static void quirk_no_bus_reset(struct pci_dev *dev)
{
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 4/5] PCI: Convert Mellanox broken INTx quirks to be for listed devices only
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
` (2 preceding siblings ...)
2016-11-17 23:30 ` [PATCH v3 3/5] PCI: Convert broken INTx masking quirks from HEADER to FINAL Bjorn Helgaas
@ 2016-11-17 23:30 ` Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ Bjorn Helgaas
2016-11-23 17:39 ` [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
5 siblings, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-17 23:30 UTC (permalink / raw)
To: Noa Osherovich; +Cc: linux-pci, majd, gwshan
From: Noa Osherovich <noaos@mellanox.com>
Change Mellanox's broken_intx_masking() quirk from an "all Mellanox
devices" to a quirk for listed devices only.
[bhelgaas: remove #defines, reorder to keep other quirks together]
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
drivers/pci/quirks.c | 40 +++++++++++++++++++++++++++++++++++++---
1 file changed, 37 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 85048fd..f0515b7 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3137,8 +3137,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b5, quirk_remove_d3_delay);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x22b7, quirk_remove_d3_delay);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2298, quirk_remove_d3_delay);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x229c, quirk_remove_d3_delay);
+
/*
- * Some devices may pass our check in pci_intx_mask_supported if
+ * Some devices may pass our check in pci_intx_mask_supported() if
* PCI_COMMAND_INTX_DISABLE works though they actually do not properly
* support this feature.
*/
@@ -3150,6 +3151,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_CHELSIO, 0x0030,
quirk_broken_intx_masking);
DECLARE_PCI_FIXUP_FINAL(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
quirk_broken_intx_masking);
+
/*
* Realtek RTL8169 PCI Gigabit Ethernet Controller (rev 10)
* Subsystem: Realtek RTL8169/8110 Family PCI Gigabit Ethernet NIC
@@ -3158,8 +3160,6 @@ DECLARE_PCI_FIXUP_FINAL(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
*/
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REALTEK, 0x8169,
quirk_broken_intx_masking);
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
- quirk_broken_intx_masking);
/*
* Intel i40e (XL710/X710) 10/20/40GbE NICs all have broken INTx masking,
@@ -3194,6 +3194,40 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d1,
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x37d2,
quirk_broken_intx_masking);
+static u16 mellanox_broken_intx_devs[] = {
+ PCI_DEVICE_ID_MELLANOX_HERMON_SDR,
+ PCI_DEVICE_ID_MELLANOX_HERMON_DDR,
+ PCI_DEVICE_ID_MELLANOX_HERMON_QDR,
+ PCI_DEVICE_ID_MELLANOX_HERMON_DDR_GEN2,
+ PCI_DEVICE_ID_MELLANOX_HERMON_QDR_GEN2,
+ PCI_DEVICE_ID_MELLANOX_HERMON_EN,
+ PCI_DEVICE_ID_MELLANOX_HERMON_EN_GEN2,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX_EN,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_T_GEN2,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_GEN2,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_5_GEN2,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX2,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX3,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO,
+ PCI_DEVICE_ID_MELLANOX_CONNECTIB,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX4,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX,
+};
+
+static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(mellanox_broken_intx_devs); i++) {
+ if (pdev->device == mellanox_broken_intx_devs[i]) {
+ pdev->broken_intx_masking = 1;
+ return;
+ }
+ }
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
+ mellanox_check_broken_intx_masking);
+
static void quirk_no_bus_reset(struct pci_dev *dev)
{
dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET;
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
` (3 preceding siblings ...)
2016-11-17 23:30 ` [PATCH v3 4/5] PCI: Convert Mellanox broken INTx quirks to be for listed devices only Bjorn Helgaas
@ 2016-11-17 23:30 ` Bjorn Helgaas
2016-11-18 3:38 ` Gavin Shan
2016-11-23 17:39 ` [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
5 siblings, 1 reply; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-17 23:30 UTC (permalink / raw)
To: Noa Osherovich; +Cc: linux-pci, majd, gwshan
From: Noa Osherovich <noaos@mellanox.com>
Mellanox devices were marked as having INTx masking ability broken. As a
result, the VFIO driver fails to start when more than one device function
is passed-through to a VM if both have the same INTx pin.
Prior to Connect-IB, Mellanox devices exposed to the operating system one
PCI function per all ports. Starting from Connect-IB, the devices are
function-per-port. When passing the second function to a VM, VFIO will
fail to start.
Exclude ConnectX-4, ConnectX4-Lx and Connect-IB from the list of Mellanox
devices marked as having broken INTx masking:
- ConnectX-4 and ConnectX4-LX firmware version is checked. If INTx
masking is supported, we unmark the broken INTx masking.
- Connect-IB does not support INTx currently so will not cause any
problem.
[bhelgaas: call pci_disable_device() always, after iounmap()]
Fixes: 11e42532ada3 ("PCI: Assume all Mellanox devices have broken INTx masking")
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
drivers/pci/quirks.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 54 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index f0515b7..496ca13 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3209,13 +3209,25 @@ static u16 mellanox_broken_intx_devs[] = {
PCI_DEVICE_ID_MELLANOX_CONNECTX2,
PCI_DEVICE_ID_MELLANOX_CONNECTX3,
PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO,
- PCI_DEVICE_ID_MELLANOX_CONNECTIB,
- PCI_DEVICE_ID_MELLANOX_CONNECTX4,
- PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX,
};
+#define CONNECTX_4_CURR_MAX_MINOR 99
+#define CONNECTX_4_INTX_SUPPORT_MINOR 14
+
+/*
+ * Check ConnectX-4/LX FW version to see if it supports legacy interrupts.
+ * If so, don't mark it as broken.
+ * FW minor > 99 means older FW version format and no INTx masking support.
+ * FW minor < 14 means new FW version format and no INTx masking support.
+ */
static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
{
+ __be32 __iomem *fw_ver;
+ u16 fw_major;
+ u16 fw_minor;
+ u16 fw_subminor;
+ u32 fw_maj_min;
+ u32 fw_sub_min;
int i;
for (i = 0; i < ARRAY_SIZE(mellanox_broken_intx_devs); i++) {
@@ -3224,6 +3236,45 @@ static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
return;
}
}
+
+ /* Getting here means Connect-IB cards and up. Connect-IB has no INTx
+ * support so shouldn't be checked further
+ */
+ if (pdev->device == PCI_DEVICE_ID_MELLANOX_CONNECTIB)
+ return;
+
+ if (pdev->device != PCI_DEVICE_ID_MELLANOX_CONNECTX4 &&
+ pdev->device != PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX)
+ return;
+
+ /* For ConnectX-4 and ConnectX-4LX, need to check FW support */
+ if (pci_enable_device_mem(pdev)) {
+ dev_warn(&pdev->dev, "Can't enable device memory\n");
+ return;
+ }
+
+ fw_ver = ioremap(pci_resource_start(pdev, 0), 4);
+ if (!fw_ver) {
+ dev_warn(&pdev->dev, "Can't map ConnectX-4 initialization segment\n");
+ return;
+ }
+
+ /* Reading from resource space should be 32b aligned */
+ fw_maj_min = ioread32be(fw_ver);
+ fw_sub_min = ioread32be(fw_ver + 1);
+ fw_major = fw_maj_min & 0xffff;
+ fw_minor = fw_maj_min >> 16;
+ fw_subminor = fw_sub_min & 0xffff;
+ if (fw_minor > CONNECTX_4_CURR_MAX_MINOR ||
+ fw_minor < CONNECTX_4_INTX_SUPPORT_MINOR) {
+ dev_warn(&pdev->dev, "ConnectX-4: FW %u.%u.%u doesn't support INTx masking, disabling. Please upgrade FW to %d.14.1100 and up for INTx support\n",
+ fw_major, fw_minor, fw_subminor, pdev->device ==
+ PCI_DEVICE_ID_MELLANOX_CONNECTX4 ? 12 : 14);
+ pdev->broken_intx_masking = 1;
+ }
+
+ iounmap(fw_ver);
+ pci_disable_device(pdev);
}
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
mellanox_check_broken_intx_masking);
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
2016-11-17 23:30 ` [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ Bjorn Helgaas
@ 2016-11-18 3:38 ` Gavin Shan
2016-11-18 14:31 ` Bjorn Helgaas
0 siblings, 1 reply; 12+ messages in thread
From: Gavin Shan @ 2016-11-18 3:38 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: Noa Osherovich, linux-pci, majd, gwshan
On Thu, Nov 17, 2016 at 05:30:31PM -0600, Bjorn Helgaas wrote:
>From: Noa Osherovich <noaos@mellanox.com>
>
>Mellanox devices were marked as having INTx masking ability broken. As a
>result, the VFIO driver fails to start when more than one device function
>is passed-through to a VM if both have the same INTx pin.
>
>Prior to Connect-IB, Mellanox devices exposed to the operating system one
>PCI function per all ports. Starting from Connect-IB, the devices are
>function-per-port. When passing the second function to a VM, VFIO will
>fail to start.
>
>Exclude ConnectX-4, ConnectX4-Lx and Connect-IB from the list of Mellanox
>devices marked as having broken INTx masking:
>
>- ConnectX-4 and ConnectX4-LX firmware version is checked. If INTx
> masking is supported, we unmark the broken INTx masking.
>- Connect-IB does not support INTx currently so will not cause any
> problem.
>
>[bhelgaas: call pci_disable_device() always, after iounmap()]
>Fixes: 11e42532ada3 ("PCI: Assume all Mellanox devices have broken INTx masking")
>Signed-off-by: Noa Osherovich <noaos@mellanox.com>
>Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
>Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
>Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>---
> drivers/pci/quirks.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 54 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>index f0515b7..496ca13 100644
>--- a/drivers/pci/quirks.c
>+++ b/drivers/pci/quirks.c
>@@ -3209,13 +3209,25 @@ static u16 mellanox_broken_intx_devs[] = {
> PCI_DEVICE_ID_MELLANOX_CONNECTX2,
> PCI_DEVICE_ID_MELLANOX_CONNECTX3,
> PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO,
>- PCI_DEVICE_ID_MELLANOX_CONNECTIB,
>- PCI_DEVICE_ID_MELLANOX_CONNECTX4,
>- PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX,
> };
>
>+#define CONNECTX_4_CURR_MAX_MINOR 99
>+#define CONNECTX_4_INTX_SUPPORT_MINOR 14
>+
>+/*
>+ * Check ConnectX-4/LX FW version to see if it supports legacy interrupts.
>+ * If so, don't mark it as broken.
>+ * FW minor > 99 means older FW version format and no INTx masking support.
>+ * FW minor < 14 means new FW version format and no INTx masking support.
>+ */
> static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
> {
>+ __be32 __iomem *fw_ver;
>+ u16 fw_major;
>+ u16 fw_minor;
>+ u16 fw_subminor;
>+ u32 fw_maj_min;
>+ u32 fw_sub_min;
> int i;
>
> for (i = 0; i < ARRAY_SIZE(mellanox_broken_intx_devs); i++) {
>@@ -3224,6 +3236,45 @@ static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
> return;
> }
> }
>+
>+ /* Getting here means Connect-IB cards and up. Connect-IB has no INTx
>+ * support so shouldn't be checked further
>+ */
>+ if (pdev->device == PCI_DEVICE_ID_MELLANOX_CONNECTIB)
>+ return;
>+
>+ if (pdev->device != PCI_DEVICE_ID_MELLANOX_CONNECTX4 &&
>+ pdev->device != PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX)
>+ return;
>+
>+ /* For ConnectX-4 and ConnectX-4LX, need to check FW support */
>+ if (pci_enable_device_mem(pdev)) {
>+ dev_warn(&pdev->dev, "Can't enable device memory\n");
>+ return;
>+ }
>+
>+ fw_ver = ioremap(pci_resource_start(pdev, 0), 4);
>+ if (!fw_ver) {
>+ dev_warn(&pdev->dev, "Can't map ConnectX-4 initialization segment\n");
Bjorn, pci_disable_device() is still missed here. Could you please
amend it?
>+ return;
>+ }
>+
>+ /* Reading from resource space should be 32b aligned */
>+ fw_maj_min = ioread32be(fw_ver);
>+ fw_sub_min = ioread32be(fw_ver + 1);
>+ fw_major = fw_maj_min & 0xffff;
>+ fw_minor = fw_maj_min >> 16;
>+ fw_subminor = fw_sub_min & 0xffff;
>+ if (fw_minor > CONNECTX_4_CURR_MAX_MINOR ||
>+ fw_minor < CONNECTX_4_INTX_SUPPORT_MINOR) {
>+ dev_warn(&pdev->dev, "ConnectX-4: FW %u.%u.%u doesn't support INTx masking, disabling. Please upgrade FW to %d.14.1100 and up for INTx support\n",
>+ fw_major, fw_minor, fw_subminor, pdev->device ==
>+ PCI_DEVICE_ID_MELLANOX_CONNECTX4 ? 12 : 14);
>+ pdev->broken_intx_masking = 1;
>+ }
>+
>+ iounmap(fw_ver);
>+ pci_disable_device(pdev);
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
> mellanox_check_broken_intx_masking);
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
2016-11-18 3:38 ` Gavin Shan
@ 2016-11-18 14:31 ` Bjorn Helgaas
0 siblings, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-18 14:31 UTC (permalink / raw)
To: Gavin Shan; +Cc: Bjorn Helgaas, Noa Osherovich, linux-pci, majd
On Fri, Nov 18, 2016 at 02:38:47PM +1100, Gavin Shan wrote:
> On Thu, Nov 17, 2016 at 05:30:31PM -0600, Bjorn Helgaas wrote:
> >From: Noa Osherovich <noaos@mellanox.com>
> >
> >Mellanox devices were marked as having INTx masking ability broken. As a
> >result, the VFIO driver fails to start when more than one device function
> >is passed-through to a VM if both have the same INTx pin.
> >
> >Prior to Connect-IB, Mellanox devices exposed to the operating system one
> >PCI function per all ports. Starting from Connect-IB, the devices are
> >function-per-port. When passing the second function to a VM, VFIO will
> >fail to start.
> >
> >Exclude ConnectX-4, ConnectX4-Lx and Connect-IB from the list of Mellanox
> >devices marked as having broken INTx masking:
> >
> >- ConnectX-4 and ConnectX4-LX firmware version is checked. If INTx
> > masking is supported, we unmark the broken INTx masking.
> >- Connect-IB does not support INTx currently so will not cause any
> > problem.
> >
> >[bhelgaas: call pci_disable_device() always, after iounmap()]
> >Fixes: 11e42532ada3 ("PCI: Assume all Mellanox devices have broken INTx masking")
> >Signed-off-by: Noa Osherovich <noaos@mellanox.com>
> >Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> >Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
> >Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
> >---
> > drivers/pci/quirks.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++---
> > 1 file changed, 54 insertions(+), 3 deletions(-)
> >
> >diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> >index f0515b7..496ca13 100644
> >--- a/drivers/pci/quirks.c
> >+++ b/drivers/pci/quirks.c
> >@@ -3209,13 +3209,25 @@ static u16 mellanox_broken_intx_devs[] = {
> > PCI_DEVICE_ID_MELLANOX_CONNECTX2,
> > PCI_DEVICE_ID_MELLANOX_CONNECTX3,
> > PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO,
> >- PCI_DEVICE_ID_MELLANOX_CONNECTIB,
> >- PCI_DEVICE_ID_MELLANOX_CONNECTX4,
> >- PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX,
> > };
> >
> >+#define CONNECTX_4_CURR_MAX_MINOR 99
> >+#define CONNECTX_4_INTX_SUPPORT_MINOR 14
> >+
> >+/*
> >+ * Check ConnectX-4/LX FW version to see if it supports legacy interrupts.
> >+ * If so, don't mark it as broken.
> >+ * FW minor > 99 means older FW version format and no INTx masking support.
> >+ * FW minor < 14 means new FW version format and no INTx masking support.
> >+ */
> > static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
> > {
> >+ __be32 __iomem *fw_ver;
> >+ u16 fw_major;
> >+ u16 fw_minor;
> >+ u16 fw_subminor;
> >+ u32 fw_maj_min;
> >+ u32 fw_sub_min;
> > int i;
> >
> > for (i = 0; i < ARRAY_SIZE(mellanox_broken_intx_devs); i++) {
> >@@ -3224,6 +3236,45 @@ static void mellanox_check_broken_intx_masking(struct pci_dev *pdev)
> > return;
> > }
> > }
> >+
> >+ /* Getting here means Connect-IB cards and up. Connect-IB has no INTx
> >+ * support so shouldn't be checked further
> >+ */
> >+ if (pdev->device == PCI_DEVICE_ID_MELLANOX_CONNECTIB)
> >+ return;
> >+
> >+ if (pdev->device != PCI_DEVICE_ID_MELLANOX_CONNECTX4 &&
> >+ pdev->device != PCI_DEVICE_ID_MELLANOX_CONNECTX4_LX)
> >+ return;
> >+
> >+ /* For ConnectX-4 and ConnectX-4LX, need to check FW support */
> >+ if (pci_enable_device_mem(pdev)) {
> >+ dev_warn(&pdev->dev, "Can't enable device memory\n");
> >+ return;
> >+ }
> >+
> >+ fw_ver = ioremap(pci_resource_start(pdev, 0), 4);
> >+ if (!fw_ver) {
> >+ dev_warn(&pdev->dev, "Can't map ConnectX-4 initialization segment\n");
>
> Bjorn, pci_disable_device() is still missed here. Could you please
> amend it?
Fixed and re-pushed, thanks!
> >+ return;
> >+ }
> >+
> >+ /* Reading from resource space should be 32b aligned */
> >+ fw_maj_min = ioread32be(fw_ver);
> >+ fw_sub_min = ioread32be(fw_ver + 1);
> >+ fw_major = fw_maj_min & 0xffff;
> >+ fw_minor = fw_maj_min >> 16;
> >+ fw_subminor = fw_sub_min & 0xffff;
> >+ if (fw_minor > CONNECTX_4_CURR_MAX_MINOR ||
> >+ fw_minor < CONNECTX_4_INTX_SUPPORT_MINOR) {
> >+ dev_warn(&pdev->dev, "ConnectX-4: FW %u.%u.%u doesn't support INTx masking, disabling. Please upgrade FW to %d.14.1100 and up for INTx support\n",
> >+ fw_major, fw_minor, fw_subminor, pdev->device ==
> >+ PCI_DEVICE_ID_MELLANOX_CONNECTX4 ? 12 : 14);
> >+ pdev->broken_intx_masking = 1;
> >+ }
> >+
> >+ iounmap(fw_ver);
> >+ pci_disable_device(pdev);
> > }
> > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_MELLANOX, PCI_ANY_ID,
> > mellanox_check_broken_intx_masking);
> >
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 2/5] net/mlx4_core: Use device ID defines
2016-11-17 23:30 ` [PATCH v3 2/5] net/mlx4_core: Use device ID defines Bjorn Helgaas
@ 2016-11-20 7:08 ` Noa Osherovich
2016-11-20 7:14 ` Noa Osherovich
0 siblings, 1 reply; 12+ messages in thread
From: Noa Osherovich @ 2016-11-20 7:08 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: linux-pci, majd, gwshan
Adding relevant Mellanox people to take a look.
On 11/18/2016 1:30 AM, Bjorn Helgaas wrote:
> We added a bunch of new Mellanox device ID definitions because they'll be
> used by INTx quirks. Use them in the mlx4 ID table also so grep can find
> both places.
>
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
> drivers/net/ethernet/mellanox/mlx4/main.c | 78 ++++++++++++++---------------
> 1 file changed, 37 insertions(+), 41 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
> index 7183ac4..672e0a2e 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/main.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/main.c
> @@ -4012,49 +4012,45 @@ int mlx4_restart_one(struct pci_dev *pdev)
> return err;
> }
>
> +#define MLX_SP(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_FORCE_SENSE_PORT }
> +#define MLX_VF(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_IS_VF }
> +#define MLX_GN(id) { PCI_VDEVICE(MELLANOX, id), 0 }
> +
> static const struct pci_device_id mlx4_pci_table[] = {
> - /* MT25408 "Hermon" SDR */
> - { PCI_VDEVICE(MELLANOX, 0x6340), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25408 "Hermon" DDR */
> - { PCI_VDEVICE(MELLANOX, 0x634a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25408 "Hermon" QDR */
> - { PCI_VDEVICE(MELLANOX, 0x6354), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25408 "Hermon" DDR PCIe gen2 */
> - { PCI_VDEVICE(MELLANOX, 0x6732), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25408 "Hermon" QDR PCIe gen2 */
> - { PCI_VDEVICE(MELLANOX, 0x673c), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25408 "Hermon" EN 10GigE */
> - { PCI_VDEVICE(MELLANOX, 0x6368), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25408 "Hermon" EN 10GigE PCIe gen2 */
> - { PCI_VDEVICE(MELLANOX, 0x6750), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25458 ConnectX EN 10GBASE-T 10GigE */
> - { PCI_VDEVICE(MELLANOX, 0x6372), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
> - { PCI_VDEVICE(MELLANOX, 0x675a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT26468 ConnectX EN 10GigE PCIe gen2*/
> - { PCI_VDEVICE(MELLANOX, 0x6764), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */
> - { PCI_VDEVICE(MELLANOX, 0x6746), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT26478 ConnectX2 40GigE PCIe gen2 */
> - { PCI_VDEVICE(MELLANOX, 0x676e), MLX4_PCI_DEV_FORCE_SENSE_PORT },
> - /* MT25400 Family [ConnectX-2 Virtual Function] */
> - { PCI_VDEVICE(MELLANOX, 0x1002), MLX4_PCI_DEV_IS_VF },
> + /* MT25408 "Hermon" */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_SDR), /* SDR */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR), /* DDR */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR), /* QDR */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR_GEN2), /* DDR Gen2 */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR_GEN2), /* QDR Gen2 */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN), /* EN 10GigE */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN_GEN2), /* EN 10GigE Gen2 */
> + /* MT25458 ConnectX EN 10GBASE-T */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN),
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_T_GEN2), /* Gen2 */
> + /* MT26468 ConnectX EN 10GigE PCIe Gen2*/
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_GEN2),
> + /* MT26438 ConnectX EN 40GigE PCIe Gen2 5GT/s */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_5_GEN2),
> + /* MT26478 ConnectX2 40GigE PCIe Gen2 */
> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX2),
> + /* MT25400 Family [ConnectX-2] */
> + MLX_VF(0x1002), /* Virtual Function */
> /* MT27500 Family [ConnectX-3] */
> - { PCI_VDEVICE(MELLANOX, 0x1003), 0 },
> - /* MT27500 Family [ConnectX-3 Virtual Function] */
> - { PCI_VDEVICE(MELLANOX, 0x1004), MLX4_PCI_DEV_IS_VF },
> - { PCI_VDEVICE(MELLANOX, 0x1005), 0 }, /* MT27510 Family */
> - { PCI_VDEVICE(MELLANOX, 0x1006), 0 }, /* MT27511 Family */
> - { PCI_VDEVICE(MELLANOX, 0x1007), 0 }, /* MT27520 Family */
> - { PCI_VDEVICE(MELLANOX, 0x1008), 0 }, /* MT27521 Family */
> - { PCI_VDEVICE(MELLANOX, 0x1009), 0 }, /* MT27530 Family */
> - { PCI_VDEVICE(MELLANOX, 0x100a), 0 }, /* MT27531 Family */
> - { PCI_VDEVICE(MELLANOX, 0x100b), 0 }, /* MT27540 Family */
> - { PCI_VDEVICE(MELLANOX, 0x100c), 0 }, /* MT27541 Family */
> - { PCI_VDEVICE(MELLANOX, 0x100d), 0 }, /* MT27550 Family */
> - { PCI_VDEVICE(MELLANOX, 0x100e), 0 }, /* MT27551 Family */
> - { PCI_VDEVICE(MELLANOX, 0x100f), 0 }, /* MT27560 Family */
> - { PCI_VDEVICE(MELLANOX, 0x1010), 0 }, /* MT27561 Family */
> + MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3),
> + MLX_VF(0x1004), /* Virtual Function */
> + MLX_GN(0x1005), /* MT27510 Family */
> + MLX_GN(0x1006), /* MT27511 Family */
> + MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO), /* MT27520 Family */
> + MLX_GN(0x1008), /* MT27521 Family */
> + MLX_GN(0x1009), /* MT27530 Family */
> + MLX_GN(0x100a), /* MT27531 Family */
> + MLX_GN(0x100b), /* MT27540 Family */
> + MLX_GN(0x100c), /* MT27541 Family */
> + MLX_GN(0x100d), /* MT27550 Family */
> + MLX_GN(0x100e), /* MT27551 Family */
> + MLX_GN(0x100f), /* MT27560 Family */
> + MLX_GN(0x1010), /* MT27561 Family */
> { 0, }
> };
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 2/5] net/mlx4_core: Use device ID defines
2016-11-20 7:08 ` Noa Osherovich
@ 2016-11-20 7:14 ` Noa Osherovich
2016-11-23 12:06 ` Tariq Toukan
0 siblings, 1 reply; 12+ messages in thread
From: Noa Osherovich @ 2016-11-20 7:14 UTC (permalink / raw)
To: Bjorn Helgaas, Tariq Toukan, Yishai Hadas; +Cc: linux-pci, Majd Dibbiny, gwshan
With the people this time.
On 11/20/2016 9:08 AM, Noa Osherovich wrote:
> Adding relevant Mellanox people to take a look.
>
> On 11/18/2016 1:30 AM, Bjorn Helgaas wrote:
>
>> We added a bunch of new Mellanox device ID definitions because they'll be
>> used by INTx quirks. Use them in the mlx4 ID table also so grep can find
>> both places.
>>
>> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
>> ---
>> drivers/net/ethernet/mellanox/mlx4/main.c | 78 ++++++++++++++---------------
>> 1 file changed, 37 insertions(+), 41 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
>> index 7183ac4..672e0a2e 100644
>> --- a/drivers/net/ethernet/mellanox/mlx4/main.c
>> +++ b/drivers/net/ethernet/mellanox/mlx4/main.c
>> @@ -4012,49 +4012,45 @@ int mlx4_restart_one(struct pci_dev *pdev)
>> return err;
>> }
>>
>> +#define MLX_SP(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_FORCE_SENSE_PORT }
>> +#define MLX_VF(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_IS_VF }
>> +#define MLX_GN(id) { PCI_VDEVICE(MELLANOX, id), 0 }
>> +
>> static const struct pci_device_id mlx4_pci_table[] = {
>> - /* MT25408 "Hermon" SDR */
>> - { PCI_VDEVICE(MELLANOX, 0x6340), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25408 "Hermon" DDR */
>> - { PCI_VDEVICE(MELLANOX, 0x634a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25408 "Hermon" QDR */
>> - { PCI_VDEVICE(MELLANOX, 0x6354), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25408 "Hermon" DDR PCIe gen2 */
>> - { PCI_VDEVICE(MELLANOX, 0x6732), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25408 "Hermon" QDR PCIe gen2 */
>> - { PCI_VDEVICE(MELLANOX, 0x673c), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25408 "Hermon" EN 10GigE */
>> - { PCI_VDEVICE(MELLANOX, 0x6368), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25408 "Hermon" EN 10GigE PCIe gen2 */
>> - { PCI_VDEVICE(MELLANOX, 0x6750), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25458 ConnectX EN 10GBASE-T 10GigE */
>> - { PCI_VDEVICE(MELLANOX, 0x6372), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
>> - { PCI_VDEVICE(MELLANOX, 0x675a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT26468 ConnectX EN 10GigE PCIe gen2*/
>> - { PCI_VDEVICE(MELLANOX, 0x6764), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */
>> - { PCI_VDEVICE(MELLANOX, 0x6746), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT26478 ConnectX2 40GigE PCIe gen2 */
>> - { PCI_VDEVICE(MELLANOX, 0x676e), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>> - /* MT25400 Family [ConnectX-2 Virtual Function] */
>> - { PCI_VDEVICE(MELLANOX, 0x1002), MLX4_PCI_DEV_IS_VF },
>> + /* MT25408 "Hermon" */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_SDR), /* SDR */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR), /* DDR */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR), /* QDR */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR_GEN2), /* DDR Gen2 */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR_GEN2), /* QDR Gen2 */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN), /* EN 10GigE */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN_GEN2), /* EN 10GigE Gen2 */
>> + /* MT25458 ConnectX EN 10GBASE-T */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN),
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_T_GEN2), /* Gen2 */
>> + /* MT26468 ConnectX EN 10GigE PCIe Gen2*/
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_GEN2),
>> + /* MT26438 ConnectX EN 40GigE PCIe Gen2 5GT/s */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_5_GEN2),
>> + /* MT26478 ConnectX2 40GigE PCIe Gen2 */
>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX2),
>> + /* MT25400 Family [ConnectX-2] */
>> + MLX_VF(0x1002), /* Virtual Function */
>> /* MT27500 Family [ConnectX-3] */
>> - { PCI_VDEVICE(MELLANOX, 0x1003), 0 },
>> - /* MT27500 Family [ConnectX-3 Virtual Function] */
>> - { PCI_VDEVICE(MELLANOX, 0x1004), MLX4_PCI_DEV_IS_VF },
>> - { PCI_VDEVICE(MELLANOX, 0x1005), 0 }, /* MT27510 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x1006), 0 }, /* MT27511 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x1007), 0 }, /* MT27520 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x1008), 0 }, /* MT27521 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x1009), 0 }, /* MT27530 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x100a), 0 }, /* MT27531 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x100b), 0 }, /* MT27540 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x100c), 0 }, /* MT27541 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x100d), 0 }, /* MT27550 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x100e), 0 }, /* MT27551 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x100f), 0 }, /* MT27560 Family */
>> - { PCI_VDEVICE(MELLANOX, 0x1010), 0 }, /* MT27561 Family */
>> + MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3),
>> + MLX_VF(0x1004), /* Virtual Function */
>> + MLX_GN(0x1005), /* MT27510 Family */
>> + MLX_GN(0x1006), /* MT27511 Family */
>> + MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO), /* MT27520 Family */
>> + MLX_GN(0x1008), /* MT27521 Family */
>> + MLX_GN(0x1009), /* MT27530 Family */
>> + MLX_GN(0x100a), /* MT27531 Family */
>> + MLX_GN(0x100b), /* MT27540 Family */
>> + MLX_GN(0x100c), /* MT27541 Family */
>> + MLX_GN(0x100d), /* MT27550 Family */
>> + MLX_GN(0x100e), /* MT27551 Family */
>> + MLX_GN(0x100f), /* MT27560 Family */
>> + MLX_GN(0x1010), /* MT27561 Family */
>> { 0, }
>> };
>>
>>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 2/5] net/mlx4_core: Use device ID defines
2016-11-20 7:14 ` Noa Osherovich
@ 2016-11-23 12:06 ` Tariq Toukan
0 siblings, 0 replies; 12+ messages in thread
From: Tariq Toukan @ 2016-11-23 12:06 UTC (permalink / raw)
To: Noa Osherovich, Bjorn Helgaas, Yishai Hadas
Cc: linux-pci, Majd Dibbiny, gwshan
Hi Bjorn,
Thanks for the patch.
On 20/11/2016 9:14 AM, Noa Osherovich wrote:
> With the people this time.
>
> On 11/20/2016 9:08 AM, Noa Osherovich wrote:
>
>> Adding relevant Mellanox people to take a look.
>>
>> On 11/18/2016 1:30 AM, Bjorn Helgaas wrote:
>>
>>> We added a bunch of new Mellanox device ID definitions because they'll be
>>> used by INTx quirks. Use them in the mlx4 ID table also so grep can find
>>> both places.
>>>
>>> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
>>> ---
>>> drivers/net/ethernet/mellanox/mlx4/main.c | 78 ++++++++++++++---------------
>>> 1 file changed, 37 insertions(+), 41 deletions(-)
>>>
>>> diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
>>> index 7183ac4..672e0a2e 100644
>>> --- a/drivers/net/ethernet/mellanox/mlx4/main.c
>>> +++ b/drivers/net/ethernet/mellanox/mlx4/main.c
>>> @@ -4012,49 +4012,45 @@ int mlx4_restart_one(struct pci_dev *pdev)
>>> return err;
>>> }
>>>
>>> +#define MLX_SP(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_FORCE_SENSE_PORT }
>>> +#define MLX_VF(id) { PCI_VDEVICE(MELLANOX, id), MLX4_PCI_DEV_IS_VF }
>>> +#define MLX_GN(id) { PCI_VDEVICE(MELLANOX, id), 0 }
>>> +
>>> static const struct pci_device_id mlx4_pci_table[] = {
>>> - /* MT25408 "Hermon" SDR */
>>> - { PCI_VDEVICE(MELLANOX, 0x6340), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25408 "Hermon" DDR */
>>> - { PCI_VDEVICE(MELLANOX, 0x634a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25408 "Hermon" QDR */
>>> - { PCI_VDEVICE(MELLANOX, 0x6354), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25408 "Hermon" DDR PCIe gen2 */
>>> - { PCI_VDEVICE(MELLANOX, 0x6732), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25408 "Hermon" QDR PCIe gen2 */
>>> - { PCI_VDEVICE(MELLANOX, 0x673c), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25408 "Hermon" EN 10GigE */
>>> - { PCI_VDEVICE(MELLANOX, 0x6368), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25408 "Hermon" EN 10GigE PCIe gen2 */
>>> - { PCI_VDEVICE(MELLANOX, 0x6750), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25458 ConnectX EN 10GBASE-T 10GigE */
>>> - { PCI_VDEVICE(MELLANOX, 0x6372), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */
>>> - { PCI_VDEVICE(MELLANOX, 0x675a), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT26468 ConnectX EN 10GigE PCIe gen2*/
>>> - { PCI_VDEVICE(MELLANOX, 0x6764), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */
>>> - { PCI_VDEVICE(MELLANOX, 0x6746), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT26478 ConnectX2 40GigE PCIe gen2 */
>>> - { PCI_VDEVICE(MELLANOX, 0x676e), MLX4_PCI_DEV_FORCE_SENSE_PORT },
>>> - /* MT25400 Family [ConnectX-2 Virtual Function] */
>>> - { PCI_VDEVICE(MELLANOX, 0x1002), MLX4_PCI_DEV_IS_VF },
>>> + /* MT25408 "Hermon" */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_SDR), /* SDR */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR), /* DDR */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR), /* QDR */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_DDR_GEN2), /* DDR Gen2 */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_QDR_GEN2), /* QDR Gen2 */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN), /* EN 10GigE */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_HERMON_EN_GEN2), /* EN 10GigE Gen2 */
>>> + /* MT25458 ConnectX EN 10GBASE-T */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN),
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_T_GEN2), /* Gen2 */
>>> + /* MT26468 ConnectX EN 10GigE PCIe Gen2*/
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_GEN2),
>>> + /* MT26438 ConnectX EN 40GigE PCIe Gen2 5GT/s */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX_EN_5_GEN2),
>>> + /* MT26478 ConnectX2 40GigE PCIe Gen2 */
>>> + MLX_SP(PCI_DEVICE_ID_MELLANOX_CONNECTX2),
>>> + /* MT25400 Family [ConnectX-2] */
>>> + MLX_VF(0x1002), /* Virtual Function */
>>> /* MT27500 Family [ConnectX-3] */
>>> - { PCI_VDEVICE(MELLANOX, 0x1003), 0 },
>>> - /* MT27500 Family [ConnectX-3 Virtual Function] */
>>> - { PCI_VDEVICE(MELLANOX, 0x1004), MLX4_PCI_DEV_IS_VF },
>>> - { PCI_VDEVICE(MELLANOX, 0x1005), 0 }, /* MT27510 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x1006), 0 }, /* MT27511 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x1007), 0 }, /* MT27520 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x1008), 0 }, /* MT27521 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x1009), 0 }, /* MT27530 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x100a), 0 }, /* MT27531 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x100b), 0 }, /* MT27540 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x100c), 0 }, /* MT27541 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x100d), 0 }, /* MT27550 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x100e), 0 }, /* MT27551 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x100f), 0 }, /* MT27560 Family */
>>> - { PCI_VDEVICE(MELLANOX, 0x1010), 0 }, /* MT27561 Family */
>>> + MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3),
>>> + MLX_VF(0x1004), /* Virtual Function */
>>> + MLX_GN(0x1005), /* MT27510 Family */
>>> + MLX_GN(0x1006), /* MT27511 Family */
>>> + MLX_GN(PCI_DEVICE_ID_MELLANOX_CONNECTX3_PRO), /* MT27520 Family */
>>> + MLX_GN(0x1008), /* MT27521 Family */
>>> + MLX_GN(0x1009), /* MT27530 Family */
>>> + MLX_GN(0x100a), /* MT27531 Family */
>>> + MLX_GN(0x100b), /* MT27540 Family */
>>> + MLX_GN(0x100c), /* MT27541 Family */
>>> + MLX_GN(0x100d), /* MT27550 Family */
>>> + MLX_GN(0x100e), /* MT27551 Family */
>>> + MLX_GN(0x100f), /* MT27560 Family */
>>> + MLX_GN(0x1010), /* MT27561 Family */
>>> { 0, }
>>> };
>>>
>>>
Acked-by: Tariq Toukan <tariqt@mellanox.com>
Regards,
Tariq
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
` (4 preceding siblings ...)
2016-11-17 23:30 ` [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ Bjorn Helgaas
@ 2016-11-23 17:39 ` Bjorn Helgaas
5 siblings, 0 replies; 12+ messages in thread
From: Bjorn Helgaas @ 2016-11-23 17:39 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: Noa Osherovich, linux-pci, majd, gwshan
On Thu, Nov 17, 2016 at 05:29:54PM -0600, Bjorn Helgaas wrote:
> Maybe the third time is the charm. This is basically the v1 you posted,
> but I added an mlx4 update to use the new device ID definitions. That way
> grep and cscope will find the ID both places, so we can match the quirk
> with the related driver.
>
> This is on the pci/virtualization branch. And I did build it this time.
>
> v2 -> v3
> - Add device ID definitions to pci_ids.h (from original patch of Nov 1)
> - Use new definitions in mlx4 driver (new patch)
> - Use new definitions in quirks (as in v1 patches)
>
> v1 -> v2 (pushed to pci/virtualization branch but not posted on list)
> - Bjorn removed device ID definitions (which broke build)
> - Bjorn reordered so Mellanox wasn't in the middle of other quirk list
> - Bjorn moved pci_disable_device() to end of quirk
>
> v0 -> v1
> Fixes according to Gavin Shan's comments:
> - Patch numbering was wrong
> - Fixed logic of mellanox_check_broken_intx_masking
>
> ---
>
> Bjorn Helgaas (1):
> net/mlx4_core: Use device ID defines
>
> Noa Osherovich (4):
> PCI: Add Mellanox device IDs
> PCI: Convert broken INTx masking quirks from HEADER to FINAL
> PCI: Convert Mellanox broken INTx quirks to be for listed devices only
> PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+
>
>
> drivers/net/ethernet/mellanox/mlx4/main.c | 78 +++++++-------
> drivers/pci/quirks.c | 159 ++++++++++++++++++++++-------
> include/linux/pci_ids.h | 27 ++++-
> 3 files changed, 181 insertions(+), 83 deletions(-)
I added Tariq's ack on "net/mlx4_core: Use device ID defines" and applied
these on pci/virtualization for v4.10.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2016-11-23 17:39 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-17 23:29 [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 1/5] PCI: Add Mellanox device IDs Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 2/5] net/mlx4_core: Use device ID defines Bjorn Helgaas
2016-11-20 7:08 ` Noa Osherovich
2016-11-20 7:14 ` Noa Osherovich
2016-11-23 12:06 ` Tariq Toukan
2016-11-17 23:30 ` [PATCH v3 3/5] PCI: Convert broken INTx masking quirks from HEADER to FINAL Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 4/5] PCI: Convert Mellanox broken INTx quirks to be for listed devices only Bjorn Helgaas
2016-11-17 23:30 ` [PATCH v3 5/5] PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ Bjorn Helgaas
2016-11-18 3:38 ` Gavin Shan
2016-11-18 14:31 ` Bjorn Helgaas
2016-11-23 17:39 ` [PATCH v3 0/5] Unmarking Mellanox devices with broken INTx masking Bjorn Helgaas
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.