| From 691a5615b00ddd104a319c78d4f8b7e9f59d46f0 Mon Sep 17 00:00:00 2001 |
| From: Noa Osherovich <noaos@mellanox.com> |
| Date: Tue, 15 Nov 2016 09:59:58 +0200 |
| Subject: [PATCH] PCI: Convert broken INTx masking quirks from HEADER to FINAL |
| |
| commit b88214ce4d7064992452765028bd50702414f15f upstream. |
| |
| 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> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c |
| index 4bf1a88d7ba7..1534c9c81ab1 100644 |
| --- a/drivers/pci/quirks.c |
| +++ b/drivers/pci/quirks.c |
| @@ -3135,53 +3135,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) |
| { |
| -- |
| 2.10.1 |
| |