Re: [PATCH 1/1] PCI/VPD: Fix blocking of VPD data in lspci for QLogic 1077:2261

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 7 Apr 2021, 3:13pm, Bjorn Helgaas wrote:

> On Wed, Mar 03, 2021 at 02:42:50PM -0800, 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.
> 
> This is not a very convincing argument yet since 104daa71b396 ("PCI:
> Determine actual VPD size on first access") appeared in v4.6 and
> 0d5370d1d852 ("PCI: Prevent VPD access for QLogic ISP2722") appeared
> in v4.11.
> 
> If 104daa71b396 really fixed the problem, why did we need
> 0d5370d1d852?

True, 0d5370d1d852 was not really neeeded for 104daa71b396 and newer 
kernels; my theory is that when Ethan Z. ran the tests, he was using an 
older (older than 104daa71b396) kernel, but by the time the blacklisting 
was put in place, the kernel already had the fix that made the 
blacklisting unnecessary.

More of my investigation details explained here:
	https://lore.kernel.org/linux-pci/alpine.LRH.2.21.9999.2012161641230.28924@xxxxxxxxxxxxxxxxxxxxxxxxxxxx/

A quick summary of which is that, when Ethan reported the crash stack, it 
had pci_vpd_pci22* calls which is seen only in older kernels. Though 
104daa71b396 too had those calls, it was very close to the commit that 
renamed those calls (f1cd93f9aabe) -- and I theorized Ethan probably was 
not running a kernel between 104daa71b396 and f1cd93f9aabe (only 3 
commits (drivers/pci/) away).

Unfortunately, Ethan's blacklisting patch did not have the kernel commit 
SHA he had used.

Regards,
-Arun

> 
> > 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://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.org_linux-2Dpci_alpine.LRH.2.21.9999.2012161641230.28924-40irv1user01.caveonetworks.com_&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=P-q_Qkt75qFy33SvdD2nAxAyN87eO1d-mFO-lqNOomw&m=lPsRSUHeHa9BMJpm_qohlCkGzpRmhdPSNythG7ljHAU&s=Orsa4H3WN7tR8DOfCIof1toWvMUQZ2Mq0HzHPIFzEhQ&e= 
> > 
> > Signed-off-by: Arun Easi <aeasi@xxxxxxxxxxx>
> > CC: stable@xxxxxxxxxxxxxxx      # v4.6+
> > ---
> >  drivers/pci/vpd.c | 1 -
> >  1 file changed, 1 deletion(-)
> > 
> > diff --git a/drivers/pci/vpd.c b/drivers/pci/vpd.c
> > index 7915d10..bd54907 100644
> > --- a/drivers/pci/vpd.c
> > +++ b/drivers/pci/vpd.c
> > @@ -570,7 +570,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
> > 
> 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux