[libvirt] [PATCH] Allocate priv->vioserialaddrs unconditionally
by Ján Tomko
When attempting to hotplug a virtio-serial console to a domain
that had no virtio-serial controllers (not even those that
are added by libvirt when some devices need them) at daemon startup,
report a user-friendly error:
error: Failed to attach device from console.xml
error: internal error: no virtio-serial controllers are available
instead of crashing the daemon:
Process terminating with default action of signal 11 (SIGSEGV): dumping core
Access not within mapped region at address 0x8
at 0x531028F: virDomainVirtioSerialAddrNext (domain_addr.c:916)
by 0x531028F: virDomainVirtioSerialAddrAssign (domain_addr.c:1029)
by 0x1CBF68: qemuDomainAttachChrDevice (qemu_hotplug.c:1565)
by 0x1BCD5E: qemuDomainAttachDeviceLive (qemu_driver.c:7997)
by 0x1BCD5E: qemuDomainAttachDeviceFlags (qemu_driver.c:8743)
Introduced in v1.2.14-30-g5903378.
---
src/qemu/qemu_command.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d8ce511..11c6823 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -1447,9 +1447,6 @@ qemuDomainAssignVirtioSerialAddresses(virDomainDefPtr def,
virDomainVirtioSerialAddrSetPtr addrs = NULL;
qemuDomainObjPrivatePtr priv = NULL;
- if (virDomainControllerFindByType(def, VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL) == -1)
- return 0;
-
if (!(addrs = virDomainVirtioSerialAddrSetCreate()))
goto cleanup;
--
2.3.6
9 years, 5 months
[libvirt] [PATCH] Properly free the xmlDocPtr when loading pool state
by Ján Tomko
Use xmlFreeDoc instead of plain xmlFree.
4 bytes in 1 blocks are definitely lost in loss record 9 of 1,084
at 0x4C29F80: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x70730D6: xmlStrndup (in /usr/lib64/libxml2.so.2.9.2)
by 0x701E3DC: xmlNewDoc (in /usr/lib64/libxml2.so.2.9.2)
by 0x70C39F8: xmlSAX2StartDocument (in /usr/lib64/libxml2.so.2.9.2)
by 0x7017245: xmlParseDocument (in /usr/lib64/libxml2.so.2.9.2)
by 0x7017606: xmlDoRead (in /usr/lib64/libxml2.so.2.9.2)
by 0x5309DAD: virXMLParseHelper (virxml.c:742)
by 0x5367584: virStoragePoolLoadState (storage_conf.c:1863)
---
src/conf/storage_conf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 7857a5e..df536d4 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -1894,7 +1894,7 @@ virStoragePoolLoadState(virStoragePoolObjListPtr pools,
cleanup:
VIR_FREE(stateFile);
- xmlFree(xml);
+ xmlFreeDoc(xml);
xmlXPathFreeContext(ctxt);
return pool;
--
2.3.6
9 years, 5 months
[libvirt] Entering freeze for libvirt 1.2.16
by Daniel Veillard
I'm one day late but I have tagged the release candidate 1
in git and pushed signed tarballs and rpms to the usual place:
ftp://libvirt.org/libvirt/
we have a bit less than 160 commits so far since 1.2.15.
I tried it with my usual limited testing and it looks fine,
https://ci.centos.org/ seems fine when it comes to libvirt,
but please give it a try so we can get potential bugs or
portability issues out.
I will probably make an rc2 on Friday and push the final
release next Monday or Tuesday,
thanks !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
9 years, 5 months
[libvirt] HELP - Virsh migrate issue
by VONDRA Alain
Hi,
When I use the Live migration through the oVirt Administration Portal, everything works fine without any errors, but When I want to migrate VMs using the command virsh migrate, it doesn't work at all.
The connexion works fine :
[root@unc-srv-hyp2 ~]$ virsh -c qemu+ssh://root@unc-srv-hyp1/system
Please enter your authentication name: root
Please enter your password:
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # hostname
unc-srv-hyp1.cfu.local
But when I try to live migrate I have the same issue from any of the two hypervisors :
[root@unc-srv-hyp1 ~]$ virsh migrate --live unc-cli-xrt qemu+ssh://root@unc-srv-hyp2/system
Please enter your authentication name: root
Please enter your password:
Please enter your authentication name: root
Please enter your password:
error: Failed to open file '/rhev/data-center/f422de63-8869-41ef-a782-8b0c9ee03c41/d7b9d7cc-f7d6-43c7-ae13-e720951657c9/images/dd4801b5-310c-4bc2-b330- a47ec9bb9870/0d05a0e4-726b-4e6e-b25a-0f85e6c983f3': No such file or directory
Have you any ideas to find the answer ?
Thanks
Alain
________________________________
Alain VONDRA
Charg? d'exploitation des Syst?mes d'Information
Direction Administrative et Financi?re
+33 1 44 39 77 76
UNICEF France
3 rue Duguay Trouin 75006 PARIS
www.unicef.fr<http://www.unicef.fr/>
<http://www.unicef.fr>
<http://www.unicef.fr/>
<http://www.unicef.fr/>[cid:urg_nepal_siganture_v2d2f17c]<http://www.unicef.fr>
________________________________
<http://www.unicef.fr>
9 years, 5 months
[libvirt] [PATCH] virsh: Fix printing of XML for pool-create-as
by John Ferlan
https://bugzilla.redhat.com/show_bug.cgi?id=1224088
commit id 'bd00e00e' neglected to add the new adapter source options
into the if condition that allowed printing the <source> XML fields.
The <adapter type='fc_host'.../> doesn't require other options in order
to be complete.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
tools/virsh-pool.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 4865831..b420fe2 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -284,7 +284,8 @@ vshBuildPoolXML(vshControl *ctl,
virBufferAsprintf(&buf, "<pool type='%s'>\n", type);
virBufferAdjustIndent(&buf, 2);
virBufferAsprintf(&buf, "<name>%s</name>\n", name);
- if (srcHost || srcPath || srcDev || srcFormat || srcName) {
+ if (srcHost || srcPath || srcDev || srcFormat || srcName ||
+ (adapterWwnn && adapterWwpn) || adapterName) {
virBufferAddLit(&buf, "<source>\n");
virBufferAdjustIndent(&buf, 2);
--
2.1.0
9 years, 5 months
[libvirt] [RFC 0/7] Live Migration with Pass-through Devices proposal
by Chen Fan
backgrond:
Live migration is one of the most important features of virtualization technology.
With regard to recent virtualization techniques, performance of network I/O is critical.
Current network I/O virtualization (e.g. Para-virtualized I/O, VMDq) has a significant
performance gap with native network I/O. Pass-through network devices have near
native performance, however, they have thus far prevented live migration. No existing
methods solve the problem of live migration with pass-through devices perfectly.
There was an idea to solve the problem in website:
https://www.kernel.org/doc/ols/2008/ols2008v2-pages-261-267.pdf
Please refer to above document for detailed information.
So I think this problem maybe could be solved by using the combination of existing
technology. and the following steps are we considering to implement:
- before boot VM, we anticipate to specify two NICs for creating bonding device
(one plugged and one virtual NIC) in XML. here we can specify the NIC's mac addresses
in XML, which could facilitate qemu-guest-agent to find the network interfaces in guest.
- when qemu-guest-agent startup in guest it would send a notification to libvirt,
then libvirt will call the previous registered initialize callbacks. so through
the callback functions, we can create the bonding device according to the XML
configuration. and here we use netcf tool which can facilitate to create bonding device
easily.
- during migration, unplug the passthroughed NIC. then do native migration.
- on destination side, check whether need to hotplug new NIC according to specified XML.
usually, we use migrate "--xml" command option to specify the destination host NIC mac
address to hotplug a new NIC, because source side passthrough NIC mac address is different,
then hotplug the deivce according to the destination XML configuration.
TODO:
1. when hot add a new NIC in destination side after migration finished, the NIC device
need to re-enslave on bonding device in guest. otherwise, it is offline. maybe
we should consider bonding driver to support add interfaces dynamically.
This is an example on how this might work, so I want to hear some voices about this scenario.
Thanks,
Chen
Chen Fan (7):
qemu-agent: add agent init callback when detecting guest setup
qemu: add guest init event callback to do the initialize work for
guest
hostdev: add a 'bond' type element in <hostdev> element
qemu-agent: add qemuAgentCreateBond interface
hostdev: add parse ip and route for bond configure
migrate: hot remove hostdev at perform phase for bond device
migrate: add hostdev migrate status to support hostdev migration
docs/schemas/basictypes.rng | 6 ++
docs/schemas/domaincommon.rng | 37 ++++++++
src/conf/domain_conf.c | 195 ++++++++++++++++++++++++++++++++++++++---
src/conf/domain_conf.h | 40 +++++++--
src/conf/networkcommon_conf.c | 17 ----
src/conf/networkcommon_conf.h | 17 ++++
src/libvirt_private.syms | 1 +
src/qemu/qemu_agent.c | 196 +++++++++++++++++++++++++++++++++++++++++-
src/qemu/qemu_agent.h | 12 +++
src/qemu/qemu_command.c | 3 +
src/qemu/qemu_domain.c | 70 +++++++++++++++
src/qemu/qemu_domain.h | 14 +++
src/qemu/qemu_driver.c | 38 ++++++++
src/qemu/qemu_hotplug.c | 8 +-
src/qemu/qemu_migration.c | 91 ++++++++++++++++++++
src/qemu/qemu_migration.h | 4 +
src/qemu/qemu_process.c | 32 +++++++
src/util/virhostdev.c | 3 +
18 files changed, 745 insertions(+), 39 deletions(-)
--
1.9.3
9 years, 5 months
[libvirt] Plans for next release
by Daniel Veillard
Hi everybody,
if we want to get it by next month, we should probably freeze on Tuesday
for an 1.2.16 on June 1st, we 'only' have 137 commits since 1.2.15 but
sticking to the monthly release is important.
I hope this works for everybody,
thanks,
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
9 years, 5 months
[libvirt] [PATCH libvirt-python] Fix duplicate entries in AUTHORS
by Jim Fehlig
The generated AUTHORS file contains many duplicates. If an author
has N commits, there will be N entries for the author in AUTHORS.
Check if an author already exists in the list before appending.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
setup.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 2571742..7a1964b 100755
--- a/setup.py
+++ b/setup.py
@@ -176,7 +176,9 @@ class my_sdist(sdist):
f = os.popen("git log --pretty=format:'%aN <%aE>'")
authors = []
for line in f:
- authors.append(" " + line.strip())
+ line = " " + line.strip()
+ if line not in authors:
+ authors.append(line)
authors.sort(key=str.lower)
--
2.3.7
9 years, 6 months
[libvirt] [PATCH] debug: assure NULLSTR() around all %s args in debug at top of public APIs
by Laine Stump
There are also a couple that were very uninformatively just logging
the value of the pointer rather than the string itself:
* the "name" arg to virNodeDeviceLookupByName()
* wwnn and wwpn args to virNodeDeviceLookupSCSIHostByWWN()
All char*'s that make sense should now have their contents logged
rather than the pointer, and all %s args should now be inside
NULLSTR().
---
src/libvirt-domain.c | 36 ++++++++++++++++++------------------
src/libvirt-host.c | 6 +++---
src/libvirt-interface.c | 6 +++---
src/libvirt-network.c | 6 +++---
src/libvirt-nodedev.c | 10 +++++-----
src/libvirt-nwfilter.c | 6 +++---
src/libvirt-secret.c | 4 ++--
src/libvirt-storage.c | 16 ++++++++--------
8 files changed, 45 insertions(+), 45 deletions(-)
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 2edba1a..5907f58 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -167,7 +167,7 @@ virDomainPtr
virDomainCreateXML(virConnectPtr conn, const char *xmlDesc,
unsigned int flags)
{
- VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags);
+ VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, NULLSTR(xmlDesc), flags);
virResetLastError();
@@ -235,7 +235,7 @@ virDomainCreateXMLWithFiles(virConnectPtr conn, const char *xmlDesc,
unsigned int flags)
{
VIR_DEBUG("conn=%p, xmlDesc=%s, nfiles=%u, files=%p, flags=%x",
- conn, xmlDesc, nfiles, files, flags);
+ conn, NULLSTR(xmlDesc), nfiles, files, flags);
virResetLastError();
@@ -413,7 +413,7 @@ virDomainLookupByUUIDString(virConnectPtr conn, const char *uuidstr)
virDomainPtr
virDomainLookupByName(virConnectPtr conn, const char *name)
{
- VIR_DEBUG("conn=%p, name=%s", conn, name);
+ VIR_DEBUG("conn=%p, name=%s", conn, NULLSTR(name));
virResetLastError();
@@ -955,7 +955,7 @@ virDomainSaveFlags(virDomainPtr domain, const char *to,
int
virDomainRestore(virConnectPtr conn, const char *from)
{
- VIR_DEBUG("conn=%p, from=%s", conn, from);
+ VIR_DEBUG("conn=%p, from=%s", conn, NULLSTR(from));
virResetLastError();
@@ -1025,7 +1025,7 @@ virDomainRestoreFlags(virConnectPtr conn, const char *from, const char *dxml,
unsigned int flags)
{
VIR_DEBUG("conn=%p, from=%s, dxml=%s, flags=%x",
- conn, from, NULLSTR(dxml), flags);
+ conn, NULLSTR(from), NULLSTR(dxml), flags);
virResetLastError();
@@ -1089,7 +1089,7 @@ virDomainSaveImageGetXMLDesc(virConnectPtr conn, const char *file,
unsigned int flags)
{
VIR_DEBUG("conn=%p, file=%s, flags=%x",
- conn, file, flags);
+ conn, NULLSTR(file), flags);
virResetLastError();
@@ -1162,7 +1162,7 @@ virDomainSaveImageDefineXML(virConnectPtr conn, const char *file,
const char *dxml, unsigned int flags)
{
VIR_DEBUG("conn=%p, file=%s, dxml=%s, flags=%x",
- conn, file, dxml, flags);
+ conn, NULLSTR(file), NULLSTR(dxml), flags);
virResetLastError();
@@ -2623,7 +2623,7 @@ virConnectDomainXMLFromNative(virConnectPtr conn,
unsigned int flags)
{
VIR_DEBUG("conn=%p, format=%s, config=%s, flags=%x",
- conn, nativeFormat, nativeConfig, flags);
+ conn, NULLSTR(nativeFormat), NULLSTR(nativeConfig), flags);
virResetLastError();
@@ -2673,7 +2673,7 @@ virConnectDomainXMLToNative(virConnectPtr conn,
unsigned int flags)
{
VIR_DEBUG("conn=%p, format=%s, xml=%s, flags=%x",
- conn, nativeFormat, domainXml, flags);
+ conn, NULLSTR(nativeFormat), NULLSTR(domainXml), flags);
virResetLastError();
@@ -4597,7 +4597,7 @@ virDomainMigrateFinish(virConnectPtr dconn,
{
VIR_DEBUG("dconn=%p, dname=%s, cookie=%p, cookielen=%d, uri=%s, "
"flags=%lx", dconn, NULLSTR(dname), cookie, cookielen,
- uri, flags);
+ NULLSTR(uri), flags);
virResetLastError();
@@ -4639,8 +4639,8 @@ virDomainMigratePrepare2(virConnectPtr dconn,
{
VIR_DEBUG("dconn=%p, cookie=%p, cookielen=%p, uri_in=%s, uri_out=%p,"
"flags=%lx, dname=%s, bandwidth=%lu, dom_xml=%s", dconn,
- cookie, cookielen, uri_in, uri_out, flags, NULLSTR(dname),
- bandwidth, dom_xml);
+ cookie, cookielen, NULLSTR(uri_in), uri_out, flags, NULLSTR(dname),
+ bandwidth, NULLSTR(dom_xml));
virResetLastError();
@@ -4681,7 +4681,7 @@ virDomainMigrateFinish2(virConnectPtr dconn,
{
VIR_DEBUG("dconn=%p, dname=%s, cookie=%p, cookielen=%d, uri=%s, "
"flags=%lx, retcode=%d", dconn, NULLSTR(dname), cookie,
- cookielen, uri, flags, retcode);
+ cookielen, NULLSTR(uri), flags, retcode);
virResetLastError();
@@ -4721,7 +4721,7 @@ virDomainMigratePrepareTunnel(virConnectPtr conn,
{
VIR_DEBUG("conn=%p, stream=%p, flags=%lx, dname=%s, "
"bandwidth=%lu, dom_xml=%s", conn, st, flags,
- NULLSTR(dname), bandwidth, dom_xml);
+ NULLSTR(dname), bandwidth, NULLSTR(dom_xml));
virResetLastError();
@@ -4817,7 +4817,7 @@ virDomainMigratePrepare3(virConnectPtr dconn,
VIR_DEBUG("dconn=%p, cookiein=%p, cookieinlen=%d, cookieout=%p, "
"cookieoutlen=%p, uri_in=%s, uri_out=%p, flags=%lx, dname=%s, "
"bandwidth=%lu, dom_xml=%s",
- dconn, cookiein, cookieinlen, cookieout, cookieoutlen, uri_in,
+ dconn, cookiein, cookieinlen, cookieout, cookieoutlen, NULLSTR(uri_in),
uri_out, flags, NULLSTR(dname), bandwidth, dom_xml);
virResetLastError();
@@ -4866,7 +4866,7 @@ virDomainMigratePrepareTunnel3(virConnectPtr conn,
"cookieoutlen=%p, flags=%lx, dname=%s, bandwidth=%lu, "
"dom_xml=%s",
conn, st, cookiein, cookieinlen, cookieout, cookieoutlen, flags,
- NULLSTR(dname), bandwidth, dom_xml);
+ NULLSTR(dname), bandwidth, NULLSTR(dom_xml));
virResetLastError();
@@ -6377,7 +6377,7 @@ virDomainGetBlockInfo(virDomainPtr domain, const char *disk,
virDomainPtr
virDomainDefineXML(virConnectPtr conn, const char *xml)
{
- VIR_DEBUG("conn=%p, xml=%s", conn, xml);
+ VIR_DEBUG("conn=%p, xml=%s", conn, NULLSTR(xml));
virResetLastError();
@@ -6425,7 +6425,7 @@ virDomainDefineXML(virConnectPtr conn, const char *xml)
virDomainPtr
virDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags)
{
- VIR_DEBUG("conn=%p, xml=%s flags=%x", conn, xml, flags);
+ VIR_DEBUG("conn=%p, xml=%s flags=%x", conn, NULLSTR(xml), flags);
virResetLastError();
diff --git a/src/libvirt-host.c b/src/libvirt-host.c
index 03bee1f..9c88426 100644
--- a/src/libvirt-host.c
+++ b/src/libvirt-host.c
@@ -321,7 +321,7 @@ int
virConnectGetMaxVcpus(virConnectPtr conn,
const char *type)
{
- VIR_DEBUG("conn=%p, type=%s", conn, type);
+ VIR_DEBUG("conn=%p, type=%s", conn, NULLSTR(type));
virResetLastError();
@@ -965,7 +965,7 @@ virConnectCompareCPU(virConnectPtr conn,
const char *xmlDesc,
unsigned int flags)
{
- VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags);
+ VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, NULLSTR(xmlDesc), flags);
virResetLastError();
@@ -1009,7 +1009,7 @@ virConnectGetCPUModelNames(virConnectPtr conn, const char *arch, char ***models,
unsigned int flags)
{
VIR_DEBUG("conn=%p, arch=%s, models=%p, flags=%x",
- conn, arch, models, flags);
+ conn, NULLSTR(arch), models, flags);
virResetLastError();
if (models)
diff --git a/src/libvirt-interface.c b/src/libvirt-interface.c
index 4c155ca..3d1a5ff 100644
--- a/src/libvirt-interface.c
+++ b/src/libvirt-interface.c
@@ -284,7 +284,7 @@ virConnectListDefinedInterfaces(virConnectPtr conn,
virInterfacePtr
virInterfaceLookupByName(virConnectPtr conn, const char *name)
{
- VIR_DEBUG("conn=%p, name=%s", conn, name);
+ VIR_DEBUG("conn=%p, name=%s", conn, NULLSTR(name));
virResetLastError();
@@ -323,7 +323,7 @@ virInterfaceLookupByName(virConnectPtr conn, const char *name)
virInterfacePtr
virInterfaceLookupByMACString(virConnectPtr conn, const char *macstr)
{
- VIR_DEBUG("conn=%p, macstr=%s", conn, macstr);
+ VIR_DEBUG("conn=%p, macstr=%s", conn, NULLSTR(macstr));
virResetLastError();
@@ -464,7 +464,7 @@ virInterfaceGetXMLDesc(virInterfacePtr iface, unsigned int flags)
virInterfacePtr
virInterfaceDefineXML(virConnectPtr conn, const char *xml, unsigned int flags)
{
- VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, xml, flags);
+ VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, NULLSTR(xml), flags);
virResetLastError();
diff --git a/src/libvirt-network.c b/src/libvirt-network.c
index e3a3650..3136f27 100644
--- a/src/libvirt-network.c
+++ b/src/libvirt-network.c
@@ -290,7 +290,7 @@ virConnectListDefinedNetworks(virConnectPtr conn, char **const names,
virNetworkPtr
virNetworkLookupByName(virConnectPtr conn, const char *name)
{
- VIR_DEBUG("conn=%p, name=%s", conn, name);
+ VIR_DEBUG("conn=%p, name=%s", conn, NULLSTR(name));
virResetLastError();
@@ -404,7 +404,7 @@ virNetworkLookupByUUIDString(virConnectPtr conn, const char *uuidstr)
virNetworkPtr
virNetworkCreateXML(virConnectPtr conn, const char *xmlDesc)
{
- VIR_DEBUG("conn=%p, xmlDesc=%s", conn, xmlDesc);
+ VIR_DEBUG("conn=%p, xmlDesc=%s", conn, NULLSTR(xmlDesc));
virResetLastError();
@@ -444,7 +444,7 @@ virNetworkCreateXML(virConnectPtr conn, const char *xmlDesc)
virNetworkPtr
virNetworkDefineXML(virConnectPtr conn, const char *xml)
{
- VIR_DEBUG("conn=%p, xml=%s", conn, xml);
+ VIR_DEBUG("conn=%p, xml=%s", conn, NULLSTR(xml));
virResetLastError();
diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c
index b6c6d1e..c1ca575 100644
--- a/src/libvirt-nodedev.c
+++ b/src/libvirt-nodedev.c
@@ -1,7 +1,7 @@
/*
* libvirt-nodedev.c: entry points for virNodeDevPtr APIs
*
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -160,7 +160,7 @@ virNodeListDevices(virConnectPtr conn,
unsigned int flags)
{
VIR_DEBUG("conn=%p, cap=%s, names=%p, maxnames=%d, flags=%x",
- conn, cap, names, maxnames, flags);
+ conn, NULLSTR(cap), names, maxnames, flags);
virResetLastError();
@@ -199,7 +199,7 @@ virNodeListDevices(virConnectPtr conn,
virNodeDevicePtr
virNodeDeviceLookupByName(virConnectPtr conn, const char *name)
{
- VIR_DEBUG("conn=%p, name=%p", conn, name);
+ VIR_DEBUG("conn=%p, name=%s", conn, NULLSTR(name));
virResetLastError();
@@ -242,7 +242,7 @@ virNodeDeviceLookupSCSIHostByWWN(virConnectPtr conn,
const char *wwpn,
unsigned int flags)
{
- VIR_DEBUG("conn=%p, wwnn=%p, wwpn=%p, flags=%x", conn, wwnn, wwpn, flags);
+ VIR_DEBUG("conn=%p, wwnn=%s, wwpn=%s, flags=%x", conn, NULLSTR(wwnn), NULLSTR(wwpn), flags);
virResetLastError();
@@ -694,7 +694,7 @@ virNodeDeviceCreateXML(virConnectPtr conn,
const char *xmlDesc,
unsigned int flags)
{
- VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags);
+ VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, NULLSTR(xmlDesc), flags);
virResetLastError();
diff --git a/src/libvirt-nwfilter.c b/src/libvirt-nwfilter.c
index 8bb6fa0..30c7c10 100644
--- a/src/libvirt-nwfilter.c
+++ b/src/libvirt-nwfilter.c
@@ -1,7 +1,7 @@
/*
* libvirt-nwfilter.c: entry points for virNwfilterPtr APIs
*
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -162,7 +162,7 @@ virConnectListNWFilters(virConnectPtr conn, char **const names, int maxnames)
virNWFilterPtr
virNWFilterLookupByName(virConnectPtr conn, const char *name)
{
- VIR_DEBUG("conn=%p, name=%s", conn, name);
+ VIR_DEBUG("conn=%p, name=%s", conn, NULLSTR(name));
virResetLastError();
@@ -382,7 +382,7 @@ virNWFilterGetUUIDString(virNWFilterPtr nwfilter, char *buf)
virNWFilterPtr
virNWFilterDefineXML(virConnectPtr conn, const char *xmlDesc)
{
- VIR_DEBUG("conn=%p, xmlDesc=%s", conn, xmlDesc);
+ VIR_DEBUG("conn=%p, xmlDesc=%s", conn, NULLSTR(xmlDesc));
virResetLastError();
diff --git a/src/libvirt-secret.c b/src/libvirt-secret.c
index e77f223..fa306e3 100644
--- a/src/libvirt-secret.c
+++ b/src/libvirt-secret.c
@@ -1,7 +1,7 @@
/*
* libvirt-secret.c: entry points for virSecretPtr APIs
*
- * Copyright (C) 2006-2014 Red Hat, Inc.
+ * Copyright (C) 2006-2015 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -336,7 +336,7 @@ virSecretLookupByUsage(virConnectPtr conn,
virSecretPtr
virSecretDefineXML(virConnectPtr conn, const char *xml, unsigned int flags)
{
- VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, xml, flags);
+ VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, NULLSTR(xml), flags);
virResetLastError();
diff --git a/src/libvirt-storage.c b/src/libvirt-storage.c
index 474f198..66dd9f0 100644
--- a/src/libvirt-storage.c
+++ b/src/libvirt-storage.c
@@ -364,7 +364,7 @@ virStoragePoolPtr
virStoragePoolLookupByName(virConnectPtr conn,
const char *name)
{
- VIR_DEBUG("conn=%p, name=%s", conn, name);
+ VIR_DEBUG("conn=%p, name=%s", conn, NULLSTR(name));
virResetLastError();
@@ -521,7 +521,7 @@ virStoragePoolCreateXML(virConnectPtr conn,
const char *xmlDesc,
unsigned int flags)
{
- VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, xmlDesc, flags);
+ VIR_DEBUG("conn=%p, xmlDesc=%s, flags=%x", conn, NULLSTR(xmlDesc), flags);
virResetLastError();
@@ -564,7 +564,7 @@ virStoragePoolDefineXML(virConnectPtr conn,
const char *xml,
unsigned int flags)
{
- VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, xml, flags);
+ VIR_DEBUG("conn=%p, xml=%s, flags=%x", conn, NULLSTR(xml), flags);
virResetLastError();
@@ -1290,7 +1290,7 @@ virStorageVolPtr
virStorageVolLookupByName(virStoragePoolPtr pool,
const char *name)
{
- VIR_DEBUG("pool=%p, name=%s", pool, name);
+ VIR_DEBUG("pool=%p, name=%s", pool, NULLSTR(name));
virResetLastError();
@@ -1330,7 +1330,7 @@ virStorageVolPtr
virStorageVolLookupByKey(virConnectPtr conn,
const char *key)
{
- VIR_DEBUG("conn=%p, key=%s", conn, key);
+ VIR_DEBUG("conn=%p, key=%s", conn, NULLSTR(key));
virResetLastError();
@@ -1370,7 +1370,7 @@ virStorageVolPtr
virStorageVolLookupByPath(virConnectPtr conn,
const char *path)
{
- VIR_DEBUG("conn=%p, path=%s", conn, path);
+ VIR_DEBUG("conn=%p, path=%s", conn, NULLSTR(path));
virResetLastError();
@@ -1463,7 +1463,7 @@ virStorageVolCreateXML(virStoragePoolPtr pool,
const char *xmlDesc,
unsigned int flags)
{
- VIR_DEBUG("pool=%p, xmlDesc=%s, flags=%x", pool, xmlDesc, flags);
+ VIR_DEBUG("pool=%p, xmlDesc=%s, flags=%x", pool, NULLSTR(xmlDesc), flags);
virResetLastError();
@@ -1516,7 +1516,7 @@ virStorageVolCreateXMLFrom(virStoragePoolPtr pool,
unsigned int flags)
{
VIR_DEBUG("pool=%p, xmlDesc=%s, clonevol=%p, flags=%x",
- pool, xmlDesc, clonevol, flags);
+ pool, NULLSTR(xmlDesc), clonevol, flags);
virResetLastError();
--
2.1.0
9 years, 6 months
[libvirt] [PATCH 0/4] libxl: support SPICE graphics
by Jim Fehlig
This series provides support for SPICE graphics in the libxl driver.
The first patch is mostly code movement. The second patch is a trivial
name change of a structure member. Patch3 populates the
libxl_domain_build_info struct with SPICE info. SPICE isn't as nice
without QXL, so patch4 provides support for QXL video device.
Jim Fehlig (4):
libxl: populate build_info vfb in separate function
libxl: change reservedVNCPorts to reservedGraphicsPorts
libxl: support SPICE graphics for HVM domains
libxl: support QXL video device
src/libxl/libxl_conf.c | 150 +++++++++++++++++++++++++++++++++++++----------
src/libxl/libxl_conf.h | 2 +-
src/libxl/libxl_domain.c | 8 ++-
src/libxl/libxl_driver.c | 4 +-
4 files changed, 128 insertions(+), 36 deletions(-)
--
1.8.4.5
9 years, 6 months