Message ID | 20210409215153.16569-2-aeasi@marvell.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | PCI/VPD: Fix blocking of VPD data in lspci for QLogic 1077:2261 | expand |
On Fri, Apr 09, 2021 at 02:51:53PM -0700, Arun Easi wrote: > "lspci -vvv" for Qlogic Fibre Channel HBA 1077:2261 displays > "Vital Product Data" as "Not readable" today and thus preventing > customers from getting relevant HBA information. Fix it by removing > the blacklist quirk. > > The VPD quirk was added by [0] to avoid a system NMI; this issue has > been long fixed in the HBA firmware. In addition, PCI also has changes > to check the VPD size [1], so this quirk can be reverted now regardless > of a firmware update. > > Some more details can be found in the following thread: > "VPD blacklist of Marvell QLogic 1077/2261" [2] > > [0] 0d5370d1d852 ("PCI: Prevent VPD access for QLogic ISP2722") > [1] 104daa71b396 ("PCI: Determine actual VPD size on first access") > [2] https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2012161641230.28924@irv1user01.caveonetworks.com/ > [3] https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2104071535110.13940@irv1user01.caveonetworks.com/ > > Clarification on why [0], which appeared in v4.11, would be an issue > given that [1] appeared in v4.6: > > Firstly, we do not have information on which exact kernel the > tester was using that resulted in [0]. That said, the call > trace for the issue had pci_vpd_pci22_* calls, which appeared > only in pre-4.6 kernels. Those functions were renamed v4.6 and > above, so tester was indeed testing using an older kernel. > See [3] for further details. > > Signed-off-by: Arun Easi <aeasi@marvell.com> > CC: stable@vger.kernel.org # v4.6+ Applied to pci/vpd for v5.13, thanks! > --- > drivers/pci/vpd.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/pci/vpd.c b/drivers/pci/vpd.c > index 6909253..a41818a 100644 > --- a/drivers/pci/vpd.c > +++ b/drivers/pci/vpd.c > @@ -474,7 +474,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005d, quirk_blacklist_vpd); > 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. > -- > 2.9.5 >
diff --git a/drivers/pci/vpd.c b/drivers/pci/vpd.c index 6909253..a41818a 100644 --- a/drivers/pci/vpd.c +++ b/drivers/pci/vpd.c @@ -474,7 +474,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_LSI_LOGIC, 0x005d, quirk_blacklist_vpd); 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.
"lspci -vvv" for Qlogic Fibre Channel HBA 1077:2261 displays "Vital Product Data" as "Not readable" today and thus preventing customers from getting relevant HBA information. Fix it by removing the blacklist quirk. The VPD quirk was added by [0] to avoid a system NMI; this issue has been long fixed in the HBA firmware. In addition, PCI also has changes to check the VPD size [1], so this quirk can be reverted now regardless of a firmware update. Some more details can be found in the following thread: "VPD blacklist of Marvell QLogic 1077/2261" [2] [0] 0d5370d1d852 ("PCI: Prevent VPD access for QLogic ISP2722") [1] 104daa71b396 ("PCI: Determine actual VPD size on first access") [2] https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2012161641230.28924@irv1user01.caveonetworks.com/ [3] https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2104071535110.13940@irv1user01.caveonetworks.com/ Clarification on why [0], which appeared in v4.11, would be an issue given that [1] appeared in v4.6: Firstly, we do not have information on which exact kernel the tester was using that resulted in [0]. That said, the call trace for the issue had pci_vpd_pci22_* calls, which appeared only in pre-4.6 kernels. Those functions were renamed v4.6 and above, so tester was indeed testing using an older kernel. See [3] for further details. Signed-off-by: Arun Easi <aeasi@marvell.com> CC: stable@vger.kernel.org # v4.6+ --- drivers/pci/vpd.c | 1 - 1 file changed, 1 deletion(-)