Akihiko Odaki <akihiko.od...@daynix.com> writes: > pci_add_capability appears most PCI devices. Its error handling required > lots of code, and led to inconsistent behaviors such as: > - passing error_abort > - passing error_fatal > - asserting the returned value > - propagating the error to the caller > - skipping the rest of the function > - just ignoring > > The code generating errors in pci_add_capability had a comment which > says: >> Verify that capabilities don't overlap. Note: device assignment >> depends on this check to verify that the device is not broken. >> Should never trigger for emulated devices, but it's helpful for >> debugging these. > > Indeed vfio has some code that passes capability offsets and sizes from > a physical device, but it explicitly pays attention so that the > capabilities never overlap.
I can't see that at a glance. Can you give me a clue? > Therefore, we can always assert that > capabilities never overlap when pci_add_capability is called, resolving > these inconsistencies. > > Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com>