| From e00dc69b5f17c444a38cd9745a0f76bc989b3af4 Mon Sep 17 00:00:00 2001 |
| From: Arun Easi <aeasi@marvell.com> |
| Date: Fri, 9 Apr 2021 14:51:53 -0700 |
| Subject: PCI: Allow VPD access for QLogic ISP2722 |
| |
| From: Arun Easi <aeasi@marvell.com> |
| |
| commit e00dc69b5f17c444a38cd9745a0f76bc989b3af4 upstream. |
| |
| 0d5370d1d852 ("PCI: Prevent VPD access for QLogic ISP2722") disabled access |
| to VPD of the ISP2722-based 16/32Gb Fibre Channel to PCIe Adapter because |
| reading past the end of the VPD caused NMIs. |
| |
| 104daa71b396 ("PCI: Determine actual VPD size on first access") limits |
| reads to the actual size of VPD, which should prevent these NMIs. |
| |
| 104daa71b396 was merged *before* 0d5370d1d852, but we think the testing |
| that prompted 0d5370d1d852 ("PCI: Prevent VPD access for QLogic ISP2722") |
| was done with a kernel that lacked 104daa71b396. See [1, 2]. |
| |
| Remove the quirk added by 0d5370d1d852 ("PCI: Prevent VPD access for QLogic |
| ISP2722") so customers can read the HBA VPD. |
| |
| [1] https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2012161641230.28924@irv1user01.caveonetworks.com/ |
| [2] https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2104071535110.13940@irv1user01.caveonetworks.com/ |
| [bhelgaas: commit log] |
| Link: https://lore.kernel.org/r/20210409215153.16569-2-aeasi@marvell.com |
| Signed-off-by: Arun Easi <aeasi@marvell.com> |
| Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> |
| Cc: stable@vger.kernel.org # v4.6+ |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/pci/vpd.c | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| --- a/drivers/pci/vpd.c |
| +++ b/drivers/pci/vpd.c |
| @@ -570,7 +570,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LS |
| DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005f, quirk_blacklist_vpd); |
| DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, PCI_ANY_ID, |
| quirk_blacklist_vpd); |
| -DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_QLOGIC, 0x2261, quirk_blacklist_vpd); |
| /* |
| * The Amazon Annapurna Labs 0x0031 device id is reused for other non Root Port |
| * device types, so the quirk is registered for the PCI_CLASS_BRIDGE_PCI class. |