diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 25f8da5da07917c056274286e32986b2d23d7cb1..29497a059e04937b623cdc92095ba33764077884 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1658,7 +1658,7 @@
control how many devices can be connected through the
controller. A "scsi" controller has an optional
attribute model
, which is one of "auto", "buslogic",
- "ibmvscsi", "lsilogic", "lsias1068", or "vmpvscsi".
+ "ibmvscsi", "lsilogic", "lsias1068", "virtio-scsi" or "vmpvscsi".
A "usb" controller has an optional attribute model
,
which is one of "piix3-uhci", "piix4-uhci", "ehci",
"ich9-ehci1", "ich9-uhci1", "ich9-uhci2", "ich9-uhci3",
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index d3deaea457ad5eec284d328dbcb243b87a1fbb47..724d7d04e91275e7c181f82c5ff9e132f2188e03 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1121,6 +1121,7 @@
lsisas1068
vmpvscsi
ibmvscsi
+ virtio-scsi
piix3-uhci
piix4-uhci
ehci
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 18e8b97d2d1e3a3dba48d512c186a33030a3f897..93501cf316bc2ddfe4e8a5b2e2cb83a66fbbbe0a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -239,7 +239,8 @@ VIR_ENUM_IMPL(virDomainControllerModelSCSI, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAS
"lsilogic",
"lsisas1068",
"vmpvscsi",
- "ibmvscsi");
+ "ibmvscsi",
+ "virtio-scsi");
VIR_ENUM_IMPL(virDomainControllerModelUSB, VIR_DOMAIN_CONTROLLER_MODEL_USB_LAST,
"piix3-uhci",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index aa8c82458973d3096d3646d1ace9828033e41718..777bccb9b19cacc2feb762ce5f464950270333a4 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -453,6 +453,7 @@ enum virDomainControllerModelSCSI {
VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSISAS1068,
VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VMPVSCSI,
VIR_DOMAIN_CONTROLLER_MODEL_SCSI_IBMVSCSI,
+ VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI,
VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST
};
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 90d9948c5d83c99ab7d5656fdeea7e4137a7cefd..63f6a05e95274a1560a18bef885440a01f5fd0f3 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2375,6 +2375,9 @@ qemuBuildControllerDevStr(virDomainDefPtr domainDef,
model = qemuDefaultScsiControllerModel(domainDef);
}
switch (model) {
+ case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI:
+ virBufferAddLit(&buf, "virtio-scsi-pci");
+ break;
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LSILOGIC:
virBufferAddLit(&buf, "lsi");
break;
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 5eb7acba5e53ccd386cb7d079fd40618fc76e082..75cb6d1910cbf996127ebe44210190c0b786abc0 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -491,7 +491,8 @@ VIR_ENUM_IMPL(virVMXControllerModelSCSI, VIR_DOMAIN_CONTROLLER_MODEL_SCSI_LAST,
"lsilogic",
"lsisas1068",
"pvscsi",
- "UNUSED ibmvscsi");
+ "UNUSED ibmvscsi",
+ "UNUSED virtio-scsi");