On 09.05.2025 11:05, Jiqian Chen wrote: > @@ -83,6 +99,100 @@ static int assign_virtual_sbdf(struct pci_dev *pdev) > > #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */ > > +static struct vpci_register *vpci_get_register(struct vpci *vpci, > + unsigned int offset, > + unsigned int size) > +{ > + const struct vpci_register r = { .offset = offset, .size = size }; > + struct vpci_register *rm; > + > + ASSERT(spin_is_locked(&vpci->lock)); > + list_for_each_entry ( rm, &vpci->handlers, node ) > + { > + int cmp = vpci_register_cmp(&r, rm); > + > + if ( !cmp && rm->offset == offset && rm->size == size )
What's the point of using vpci_register_cmp() when you need to do the "exact match" check here anyway? > +static int vpci_capability_mask(struct pci_dev *pdev, unsigned int cap) What's the word "mask" indicating here? The function doesn't return any mask afaics. Do you perhaps mean "hide"? Jan