On Thu, Aug 23, 2012 at 10:31:12AM +0800, Hu Tao wrote:
For emulator, the vcpuid field is always set to -1, instead of
parsing
XML for the value of it.
---
src/conf/domain_conf.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 7242205..419088c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7923,7 +7923,7 @@ virDomainVcpuPinDefParseXML(const xmlNodePtr node,
{
virDomainVcpuPinDefPtr def;
xmlNodePtr oldnode = ctxt->node;
- int vcpuid;
+ int vcpuid = -1;
char *tmp = NULL;
int ret;
@@ -7934,15 +7934,17 @@ virDomainVcpuPinDefParseXML(const xmlNodePtr node,
ctxt->node = node;
- ret = virXPathInt("string(./@vcpu)", ctxt, &vcpuid);
- if ((ret == -2) || (vcpuid < -1)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- "%s", _("vcpu id must be an unsigned integer or
-1"));
- goto error;
- } else if ((vcpuid == -1) && (emulator == 0)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- "%s", _("vcpu id value -1 is not allowed for
vcpupin"));
- goto error;
+ if (emulator == 0) {
+ ret = virXPathInt("string(./@vcpu)", ctxt, &vcpuid);
+ if ((ret == -2) || (vcpuid < -1)) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("vcpu id must be an unsigned integer
or -1"));
+ goto error;
+ } else if (vcpuid == -1) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("vcpu id value -1 is not allowed for
vcpupin"));
+ goto error;
+ }
}
if (vcpuid >= maxvcpus) {
Ah, right, I missed that part when I refactored that function !
ACK, i'm pushing this now,
thanks !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/