diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 069ff8c2f8..3f7b0d1bfe 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -27258,6 +27258,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
const char *type = NULL;
int n;
size_t i;
+ virBuffer attributeBuf = VIR_BUFFER_INITIALIZER;
virBuffer childrenBuf = VIR_BUFFER_INITIALIZER;
char *netprefix = NULL;
@@ -27773,12 +27774,21 @@ virDomainDefFormatInternal(virDomainDefPtr def,
break;
case VIR_DOMAIN_FEATURE_HPT:
- if (def->features[i] != VIR_TRISTATE_SWITCH_ON ||
- def->hpt_resizing == VIR_DOMAIN_HPT_RESIZING_NONE)
+ if (def->features[i] != VIR_TRISTATE_SWITCH_ON)
break;
- virBufferAsprintf(buf, "\n",
- virDomainHPTResizingTypeToString(def->hpt_resizing));
+ virBufferFreeAndReset(&attributeBuf);
+
+ if (def->hpt_resizing != VIR_DOMAIN_HPT_RESIZING_NONE) {
+ virBufferAsprintf(&attributeBuf,
+ " resizing='%s'",
+ virDomainHPTResizingTypeToString(def->hpt_resizing));
+ }
+
+ if (virXMLFormatElement(buf, "hpt",
+ &attributeBuf, NULL) < 0) {
+ goto error;
+ }
break;
/* coverity[dead_error_begin] */
@@ -28040,6 +28050,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
error:
virBufferFreeAndReset(buf);
virBufferFreeAndReset(&childrenBuf);
+ virBufferFreeAndReset(&attributeBuf);
return -1;
}
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 627561a6d8..1d1d7d6be9 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7257,24 +7257,26 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
}
if (def->features[VIR_DOMAIN_FEATURE_HPT] == VIR_TRISTATE_SWITCH_ON) {
- const char *str;
- if (def->hpt_resizing != VIR_DOMAIN_HPT_RESIZING_NONE &&
- !virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("HTP resizing is not supported by this "
- "QEMU binary"));
- goto cleanup;
+ if (def->hpt_resizing != VIR_DOMAIN_HPT_RESIZING_NONE) {
+ const char *str;
+
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("HTP resizing is not supported by this "
+ "QEMU binary"));
+ goto cleanup;
+ }
+
+ str = virDomainHPTResizingTypeToString(def->hpt_resizing);
+ if (!str) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Invalid setting for HPT resizing"));
+ goto cleanup;
+ }
+
+ virBufferAsprintf(&buf, ",resize-hpt=%s", str);
}
-
- str = virDomainHPTResizingTypeToString(def->hpt_resizing);
- if (!str) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Invalid setting for HPT resizing"));
- goto cleanup;
- }
-
- virBufferAsprintf(&buf, ",resize-hpt=%s", str);
}
if (cpu && cpu->model &&
diff --git a/tests/qemuxml2argvdata/pseries-features.xml b/tests/qemuxml2argvdata/pseries-features.xml
index 5dd0dbd0be..5ef1a744c8 100644
--- a/tests/qemuxml2argvdata/pseries-features.xml
+++ b/tests/qemuxml2argvdata/pseries-features.xml
@@ -2,27 +2,17 @@
guest
1ccfd97d-5eb4-478a-bbe6-88d254c16db7
524288
- 524288
1
hvm
-
-
- destroy
- restart
- destroy
/usr/bin/qemu-system-ppc64
-
-
-
-
-
+
+
-
diff --git a/tests/qemuxml2xmloutdata/pseries-features.xml b/tests/qemuxml2xmloutdata/pseries-features.xml
deleted file mode 120000
index 1b01dbace6..0000000000
--- a/tests/qemuxml2xmloutdata/pseries-features.xml
+++ /dev/null
@@ -1 +0,0 @@
-../qemuxml2argvdata/pseries-features.xml
\ No newline at end of file
diff --git a/tests/qemuxml2xmloutdata/pseries-features.xml b/tests/qemuxml2xmloutdata/pseries-features.xml
new file mode 100644
index 0000000000..e8ed842fb6
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/pseries-features.xml
@@ -0,0 +1,28 @@
+
+ guest
+ 1ccfd97d-5eb4-478a-bbe6-88d254c16db7
+ 524288
+ 524288
+ 1
+
+ hvm
+
+
+
+
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-system-ppc64
+
+
+
+
+
+
+
+
+