Patch "PCI: Convert Mellanox broken INTx quirks to be for listed devices only" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
PCI: Convert Mellanox broken INTx quirks to be for listed devices only
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
pci-convert-mellanox-broken-intx-quirks-to-be-for-listed-devices-only.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d76d2fe05fd93673d184af77255bbbc63780f4eaMon Sep 17 00:00:00 2001
From: Noa Osherovich <[email protected]>
Date: Tue, 15 Nov 2016 09:59:59 +0200
Subject: PCI: Convert Mellanox broken INTx quirks to be for listed devices only
From: Noa Osherovich <[email protected]>
commit d76d2fe05fd93673d184af77255bbbc63780f4ea upstream.
Change Mellanox's broken_intx_masking() quirk from an "all Mellanox devices" to a quirk for listed devices only.
--- drivers/pci/quirks.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-)
drivers/pci/quirks.c +37 -3
@@ -3137,8 +3137,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INDECLARE_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_CH 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,*/ 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_INDECLARE_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 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/pci-convert-broken-intx-masking-quirks-from-header-to-final.patch queue-4.9/pci-convert-mellanox-broken-intx-quirks-to-be-for-listed-devices-only.patch queue-4.9/pci-add-mellanox-device-ids.patch queue-4.9/pci-support-intx-masking-on-connectx-4-with-firmware-x.14.1100.patch