On Fri, 2015-10-30 at 20:34 +0530, Shivaprasad bhat wrote:
> > @@ -1556,6 +1563,8 @@ virPCIDeviceNew(unsigned int domain,
> > virPCIDevicePtr dev;
> > char *vendor = NULL;
> > char *product = NULL;
> > + char *drvpath = NULL;
> > + char *driver = NULL;
> >
> > if (VIR_ALLOC(dev) < 0)
> > return NULL;
> > @@ -1603,9 +1612,16 @@ virPCIDeviceNew(unsigned int domain,
> > goto error;
> > }
> >
> > + if (virPCIDeviceGetDriverPathAndName(dev, &drvpath, &driver) <
0)
> > + goto cleanup;
> > +
> > + if (virPCIIsAKnownStub(driver))
> > + dev->stubDriver = driver;
> > +
> > VIR_DEBUG("%s %s: initialized", dev->id, dev->name);
> >
> > cleanup:
> > + VIR_FREE(drvpath);
> > VIR_FREE(product);
> > VIR_FREE(vendor);
> > return dev;
>
> What are you doing this for? AFAICT you're using this so you
> can, in Patch 7, do
>
> pci = virPCIDeviceNew(...);
> if (STREQ_NULLABLE(pci->stubDriver, "vfio-pci"))
> ...
>
> Is that so, or is there another reason I'm missing?
>
Its used in P3 as well in virHostdevPCINodeDeviceReAttach().
I want to keep that function as simple as it is now.
And as you pointed out, i am using it in P7 too.Hope its okay now.
I don't see how it's used in that function, as neither the
function itself nor the calls to virHostdevIsPCINodeDeviceUsed()
you've added with Patch 3 seem to touch dev->stubDriver...
Please walk me through it, I'm probably just missing it
because it's Friday :)
Cheers.
--
Andrea Bolognani
Software Engineer - Virtualization Team