[vfio-users] [PATCH v3 05/11] igd: TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE: call parent realize
Eduardo Habkost
ehabkost at redhat.com
Tue Jan 19 15:13:02 UTC 2016
On Wed, Jan 06, 2016 at 04:45:01PM +0100, Gerd Hoffmann wrote:
> > >
> > > +static void (*i440fx_realize)(PCIDevice *pci_dev, Error **errp);
> > > static void igd_pt_i440fx_realize(PCIDevice *pci_dev, Error **errp)
> > > {
> > > + Error *err = NULL;
> > > uint32_t val = 0;
> > > int rc, i, num;
> > > int pos, len;
> >
> > Can't we get the parent PCIDeviceClass realize function from pci_dev? So
> > that we don't have to introduce i440fx_realize?
>
> I don't think so ...
>
> > >
> > > + i440fx_realize = k->realize;
> > > k->realize = igd_pt_i440fx_realize;
>
> ... because we are overriding it right here.
Many device classes have a parent_realize field so they can keep
a pointer to the original realize function. It's better than a
static variable.
--
Eduardo
More information about the vfio-users
mailing list