qemuDomainAttachMemoryConfig(virDomainDef *vmdef,
virDomainMemoryDef **mem)
{
- if (vmdef->nmems == vmdef->mem.memory_slots) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("no free memory device slot available"));
+ switch ((*mem)->model) {
+ case VIR_DOMAIN_MEMORY_MODEL_DIMM:
+ case VIR_DOMAIN_MEMORY_MODEL_NVDIMM:
+ if (vmdef->nmems == vmdef->mem.memory_slots) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("no free memory device slot available"));
+ return -1;
+ }
+ break;
+
+ case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_PMEM:
+ case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM:
+ case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC:
+ break;
+ case VIR_DOMAIN_MEMORY_MODEL_NONE:
+ case VIR_DOMAIN_MEMORY_MODEL_LAST:
+ virReportEnumRangeError(virDomainMemoryModel, (*mem)->model);
return -1;
}