@ Bandan ... > > + > > + /* Chelsio T5 Virtual Function devices are encoded as 0x58xx for T5 > > + * adapters. The T5 hardware returns an incorrect value of 0x8000 > > for > > + * the VF PBA offset. The correct value is 0x1000, so we hard code > > that > > + * here. */ > > + if (vendor == PCI_VENDOR_ID_CHELSIO && (device & 0xff00) == > > 0x5800) { > > + vdev->msix->pba_offset = 0x1000;
> For the rare case where table_offset is wrong for the device being checked > for above and pba_offset is actually correct, shouldn't we fail ? I don't know if it is relevant to do all the tests here because in the function msix_init() all size are checked. I would prefer keeping this test as this to simplify the quirk, i.e. just testing the device first, and if another size than the pba_offset is wrong, then the sanity check in the function msix_init() will catch the error. @ Alex I corrected what you pointed out. I will send the patch v4 in a minute. Thanks you Gabriel