<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-04 20:38 GMT+08:00 Daniel P. Berrange <span dir="ltr"><<a href="mailto:berrange@redhat.com" target="_blank">berrange@redhat.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>On Sat, Mar 01, 2014 at 02:29:00PM +0800, Chunyan Liu wrote:<br>
><br>
> Signed-off-by: Chunyan Liu <<a href="mailto:cyliu@suse.com" target="_blank">cyliu@suse.com</a>><br>
> ---<br>
> src/qemu/qemu_conf.h | 8 --<br>
> src/qemu/qemu_driver.c | 74 +++++++++----------<br>
> src/qemu/qemu_hostdev.c | 192 ++++++++++++++++++++++++++++-------------------<br>
> src/qemu/qemu_hotplug.c | 1 +<br>
> 4 files changed, 151 insertions(+), 124 deletions(-)<br>
><br>
> diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h<br>
> index ece185b..2ac88fb 100644<br>
> --- a/src/qemu/qemu_conf.h<br>
> +++ b/src/qemu/qemu_conf.h<br>
> @@ -215,14 +215,6 @@ struct _virQEMUDriver {<br>
> /* Immutable pointer. self-locking APIs */<br>
> virSecurityManagerPtr securityManager;<br>
><br>
> - /* Immutable pointers. Requires locks to be held before<br>
> - * calling APIs. activePciHostdevs must be locked before<br>
> - * inactivePciHostdevs */<br>
> - virPCIDeviceListPtr activePciHostdevs;<br>
> - virPCIDeviceListPtr inactivePciHostdevs;<br>
> - virUSBDeviceListPtr activeUsbHostdevs;<br>
> - virSCSIDeviceListPtr activeScsiHostdevs;<br>
> -<br>
> /* Immutable pointer. Unsafe APIs. XXX */<br>
> virHashTablePtr sharedDevices;<br>
><br>
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c<br>
> index f36a8b4..7d924b2 100644<br>
> --- a/src/qemu/qemu_driver.c<br>
> +++ b/src/qemu/qemu_driver.c<br>
> @@ -95,6 +95,7 @@<br>
> #include "viraccessapicheck.h"<br>
> #include "viraccessapicheckqemu.h"<br>
> #include "storage/storage_driver.h"<br>
> +#include "virhostdev.h"<br>
><br>
> #define VIR_FROM_THIS VIR_FROM_QEMU<br>
><br>
> @@ -695,18 +696,6 @@ qemuStateInitialize(bool privileged,<br>
> if (qemuSecurityInit(qemu_driver) < 0)<br>
> goto error;<br>
><br>
> - if ((qemu_driver->activePciHostdevs = virPCIDeviceListNew()) == NULL)<br>
> - goto error;<br>
> -<br>
> - if ((qemu_driver->activeUsbHostdevs = virUSBDeviceListNew()) == NULL)<br>
> - goto error;<br>
> -<br>
> - if ((qemu_driver->inactivePciHostdevs = virPCIDeviceListNew()) == NULL)<br>
> - goto error;<br>
> -<br>
> - if ((qemu_driver->activeScsiHostdevs = virSCSIDeviceListNew()) == NULL) <br>
> - goto error;<br>
> -<br>
<br>
</div></div>I think we should obtain the hostdev manager instance here, and save a<br>
reference to it, so that later functions do not need to worry about<br>
failure of virHostdevManagerGetDefault()<br>
<div><br></div></blockquote><div>we could:<br></div><div> add .hostdev_mgr to _virQEMUDriver, and add<br> qemu_driver->hostdev_mgr = virHostdevManagerGetDefault() here.<br></div><div> Is that OK?<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<br>
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c<br>
> index 5546693..eeb1f24 100644<br>
> --- a/src/qemu/qemu_hotplug.c<br>
> +++ b/src/qemu/qemu_hotplug.c<br>
> @@ -50,6 +50,7 @@<br>
> #include "virstoragefile.h"<br>
> #include "virstring.h"<br>
> #include "virtime.h"<br>
> +#include "virhostdev.h"<br>
<br>
</div>This seems bogus as you're not adding any code to this file which would<br>
use those APIs<br>
<br>
Regards,<br>
Daniel<br>
<span><font color="#888888">--<br>
|: <a href="http://berrange.com" target="_blank">http://berrange.com</a> -o- <a href="http://www.flickr.com/photos/dberrange/" target="_blank">http://www.flickr.com/photos/dberrange/</a> :|<br>
|: <a href="http://libvirt.org" target="_blank">http://libvirt.org</a> -o- <a href="http://virt-manager.org" target="_blank">http://virt-manager.org</a> :|<br>
|: <a href="http://autobuild.org" target="_blank">http://autobuild.org</a> -o- <a href="http://search.cpan.org/~danberr/" target="_blank">http://search.cpan.org/~danberr/</a> :|<br>
|: <a href="http://entangle-photo.org" target="_blank">http://entangle-photo.org</a> -o- <a href="http://live.gnome.org/gtk-vnc" target="_blank">http://live.gnome.org/gtk-vnc</a> :|<br>
<br>
</font></span></blockquote></div><br></div></div>