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

Re: [Xen-devel] [PATCH v2] pci: apply workaround for Intel errata HSE43 and BDF2



On Tue, Dec 04, 2018 at 04:30:51AM -0700, Jan Beulich wrote:
> >>> On 04.12.18 at 11:42, <roger.pau@xxxxxxxxxx> wrote:
> > @@ -298,6 +299,45 @@ static void check_pdev(const struct pci_dev *pdev)
> >  #undef PCI_STATUS_CHECK
> >  }
> >  
> > +static void apply_quirks(struct pci_dev *pdev)
> > +{
> > +    uint16_t vendor = pci_conf_read16(pdev->seg, pdev->bus,
> > +                                      PCI_SLOT(pdev->devfn),
> > +                                      PCI_FUNC(pdev->devfn), 
> > PCI_VENDOR_ID);
> > +    uint16_t device = pci_conf_read16(pdev->seg, pdev->bus,
> > +                                      PCI_SLOT(pdev->devfn),
> > +                                      PCI_FUNC(pdev->devfn), 
> > PCI_DEVICE_ID);
> > +    const static struct {
> > +        uint16_t vendor, device;
> > +    } quirks[] = {
> 
> Since this is now a special purpose array, I'd prefer it to have a more
> specific name. Would you mind if I rename it to ignore_bars[] while
> committing? I'd perhaps also take the liberty and swap "const" and
> "static" into their more conventional order.

Sure, I've thought about using a more specific name, but since it's
the only quirk ATM I've decided it wasn't worth it. Feel free to
rename it.

> > +        /*
> > +         * Device [8086:2fc0]
> > +         * Erratum HSE43
> > +         * CONFIG_TDP_NOMINAL CSR Implemented at Incorrect Offset
> > +         * 
> > http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-spec-update.html
> > +         */
> > +        { PCI_VENDOR_ID_INTEL, 0x2fc0 },
> > +        /*
> > +         * Devices [8086:6f60,6fa0,6fc0]
> > +         * Erratum BDF2
> 
> .../BDX2
> 
> > +         * PCI BARs in the Home Agent Will Return Non-Zero Values During 
> > Enumeration
> > +         * 
> > http://www.intel.com/content/www/us/en/processors/xeon/xeon-e5-v4-spec-update.html
> > +        */
> > +        { PCI_VENDOR_ID_INTEL, 0x6f60 },
> > +        { PCI_VENDOR_ID_INTEL, 0x6fa0 },
> > +        { PCI_VENDOR_ID_INTEL, 0x6fc0 },
> > +    };
> > +    unsigned int i;
> > +
> > +    for ( i = 0; i < ARRAY_SIZE(quirks); i++)
> > +        if ( vendor == quirks[i].vendor && device == quirks[i].device )
> > +            /*
> > +             * For both erratas force ignoring the BARs, this prevents vPCI
> 
> "errata" is plural already afaik.
> 
> With this
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

Thanks.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.