Re: [PATCH v5 3/7] PCI/VPD: Prevent VPD access for Amazon's Annapurna Labs Root Port
From: Chocron, Jonathan
Date: Wed Sep 11 2019 - 11:01:12 EST
On Sat, 2019-09-07 at 11:55 -0500, Bjorn Helgaas wrote:
> On Thu, Sep 05, 2019 at 05:00:17PM +0300, Jonathan Chocron wrote:
> > The Amazon Annapurna Labs PCIe Root Port exposes the VPD
> > capability,
> > but there is no actual support for it.
>
> Oops. Another oops for the device ID reuse mentioned below.
>
> > Trying to access the VPD (for example, as part of lspci -vv or when
> > reading the vpd sysfs file), results in the following warning
> > print:
> >
> > pcieport 0001:00:00.0: VPD access failed. This is likely a
> > firmware bug on this device. Contact the card vendor for a
> > firmware update
>
> Thanks for not wrapping the message (keeping it together makes it
> easier to grep for).
My thoughts exactly :)
> Maybe indent it two spaces since it's quoted
> material.
>
Will be done as part of v6.
> *Is* this a firmware defect? E.g., could firmware disable this
> capability so it doesn't appear in config space, as it apparently can
> for the MSI-X capability?
>
Yes, the FW could potentially disable it so it doesn't appear in the
config space.
In theory, VPD should be able to work if some other entity would listen
to the VPD requests and respond, but there are no plans to add support
for such an entity.
> > Signed-off-by: Jonathan Chocron <jonnyc@xxxxxxxxxx>
> > Reviewed-by: Gustavo Pimentel <gustavo.pimentel@xxxxxxxxxxxx>
>
> Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
>
> > ---
> > drivers/pci/vpd.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/pci/vpd.c b/drivers/pci/vpd.c
> > index 4963c2e2bd4c..7915d10f9aa1 100644
> > --- a/drivers/pci/vpd.c
> > +++ b/drivers/pci/vpd.c
> > @@ -571,6 +571,12 @@
> > 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.
> > + */
> > +DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS,
> > 0x0031,
> > + PCI_CLASS_BRIDGE_PCI, 8,
> > quirk_blacklist_vpd);
> >
> > /*
> > * For Broadcom 5706, 5708, 5709 rev. A nics, any read beyond the
> > --
> > 2.17.1
> >