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

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



>>> On 03.12.18 at 18:36, <roger.pau@xxxxxxxxxx> wrote:
> On Fri, Nov 30, 2018 at 03:53:29AM -0700, Jan Beulich wrote:
>> >>> On 29.11.18 at 18:11, <roger.pau@xxxxxxxxxx> wrote:
>> > @@ -298,6 +299,34 @@ 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);
>> > +
>> > +    if ( vendor == PCI_VENDOR_ID_INTEL && (device == 0x2fc0 ||
>> > +         device == 0x6f60 || device == 0x6fa0 || device == 0x6fc0) )
>> 
>> Instead of such an ever growing if(), could we make this table based?
> 
> Sure, I guess using something similar to Linux's would be fine, so a
> table with the vendor ID, device ID and a pointer to a function to be
> called in case of match?

You could go this far, but I wouldn't: For now a table of (vendor,device)
tuples would suffice. Once we need to deal with further quirks, we could
then decide whether we want something callback-based.

Jan



_______________________________________________
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®.