mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-08 12:41:29 +00:00
qemu: Introduce qemuDomainDeviceDefValidateControllerSATA
Move the SATA controller check from command line building to controller def validation. This includes copying the SATA skip check found in qemuBuildSkipController.
This commit is contained in:
parent
7de841cc8e
commit
5775089e14
@ -2693,12 +2693,6 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
|
case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
|
||||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_AHCI)) {
|
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
|
||||||
_("SATA is not supported with this "
|
|
||||||
"QEMU binary"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
virBufferAsprintf(&buf, "ahci,id=%s", def->info.alias);
|
virBufferAsprintf(&buf, "ahci,id=%s", def->info.alias);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -4386,6 +4386,24 @@ qemuDomainDeviceDefValidateControllerPCI(const virDomainControllerDef *controlle
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
qemuDomainDeviceDefValidateControllerSATA(const virDomainControllerDef *controller,
|
||||||
|
const virDomainDef *def,
|
||||||
|
virQEMUCapsPtr qemuCaps)
|
||||||
|
{
|
||||||
|
/* first SATA controller on Q35 machines is implicit */
|
||||||
|
if (controller->idx == 0 && qemuDomainIsQ35(def))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_AHCI)) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
_("SATA is not supported with this QEMU binary"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller,
|
qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller,
|
||||||
const virDomainDef *def,
|
const virDomainDef *def,
|
||||||
@ -4418,8 +4436,12 @@ qemuDomainDeviceDefValidateController(const virDomainControllerDef *controller,
|
|||||||
qemuCaps);
|
qemuCaps);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
|
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
|
case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
|
||||||
|
ret = qemuDomainDeviceDefValidateControllerSATA(controller, def,
|
||||||
|
qemuCaps);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL:
|
case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL:
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
|
case VIR_DOMAIN_CONTROLLER_TYPE_CCID:
|
||||||
case VIR_DOMAIN_CONTROLLER_TYPE_USB:
|
case VIR_DOMAIN_CONTROLLER_TYPE_USB:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user