Signed-off-by: Xu Wang <gesaint(a)linux.vnet.ibm.com>
---
libxkutil/device_parsing.c | 25 ++++++++++++++++++++-----
1 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/libxkutil/device_parsing.c b/libxkutil/device_parsing.c
index 4f52bbf..4ef3bd1 100644
--- a/libxkutil/device_parsing.c
+++ b/libxkutil/device_parsing.c
@@ -1345,7 +1345,26 @@ static int parse_vcpu_device(xmlNode *node, struct virt_device
**vdevs)
char *count_str;
int count;
- count_str = get_node_content(node);
+ CU_DEBUG("Enter parse_vcpu_device().");
+
+ list = calloc(1, sizeof(*list));
+ if (list == NULL) {
+ CU_DEBUG("calloc failed.");
+ goto err;
+ }
+
+ list->dev.vcpu.others = parse_data_to_others(list->dev.vcpu.others,
+ node,
+ 0,
+ BAD_CAST "domain");
+
+ count_str = fetch_from_others(&list->dev.vcpu.others,
+ -1,
+ "vcpu",
+ TYPE_NODE,
+ -1,
+ "domain");
+
if (count_str == NULL)
count = 1; /* Default to 1 VCPU if non specified */
else if (sscanf(count_str, "%i", &count) != 1)
@@ -1353,10 +1372,6 @@ static int parse_vcpu_device(xmlNode *node, struct virt_device
**vdevs)
free(count_str);
- list = calloc(1, sizeof(*list));
- if (list == NULL)
- goto err;
-
list->dev.vcpu.quantity = count;
list->type = CIM_RES_TYPE_PROC;
--
1.7.1