mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-04 21:47:16 +03:00
qemu: Extract MDEV VFIO PCI validation code into a separate helper
Since we'll need to validate other models apart from VFIO PCI too, having a helper for each model should keep the code base cleaner. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
This commit is contained in:
parent
f1e8d2f09a
commit
208d6e6f5a
@ -4564,11 +4564,11 @@ qemuDomainDeviceDefValidateNetwork(const virDomainNetDef *net)
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainMdevDefValidate(const virDomainHostdevSubsysMediatedDev *mdevsrc,
|
||||
const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
qemuDomainMdevDefVFIOPCIValidate(const virDomainHostdevSubsysMediatedDev *dev,
|
||||
const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
if (mdevsrc->display == VIR_TRISTATE_SWITCH_ABSENT)
|
||||
if (dev->display == VIR_TRISTATE_SWITCH_ABSENT)
|
||||
return 0;
|
||||
|
||||
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VFIO_PCI_DISPLAY)) {
|
||||
@ -4578,7 +4578,7 @@ qemuDomainMdevDefValidate(const virDomainHostdevSubsysMediatedDev *mdevsrc,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mdevsrc->model != VIR_MDEV_MODEL_TYPE_VFIO_PCI) {
|
||||
if (dev->model != VIR_MDEV_MODEL_TYPE_VFIO_PCI) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("<hostdev> attribute 'display' is only supported"
|
||||
" with model='vfio-pci'"));
|
||||
@ -4586,7 +4586,7 @@ qemuDomainMdevDefValidate(const virDomainHostdevSubsysMediatedDev *mdevsrc,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mdevsrc->display == VIR_TRISTATE_SWITCH_ON) {
|
||||
if (dev->display == VIR_TRISTATE_SWITCH_ON) {
|
||||
if (def->ngraphics == 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("graphics device is needed for attribute value "
|
||||
@ -4599,6 +4599,29 @@ qemuDomainMdevDefValidate(const virDomainHostdevSubsysMediatedDev *mdevsrc,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainMdevDefValidate(const virDomainHostdevSubsysMediatedDev *mdevsrc,
|
||||
const virDomainDef *def,
|
||||
virQEMUCapsPtr qemuCaps)
|
||||
{
|
||||
switch ((virMediatedDeviceModelType) mdevsrc->model) {
|
||||
case VIR_MDEV_MODEL_TYPE_VFIO_PCI:
|
||||
return qemuDomainMdevDefVFIOPCIValidate(mdevsrc, def, qemuCaps);
|
||||
case VIR_MDEV_MODEL_TYPE_VFIO_AP:
|
||||
break;
|
||||
case VIR_MDEV_MODEL_TYPE_VFIO_CCW:
|
||||
break;
|
||||
case VIR_MDEV_MODEL_TYPE_LAST:
|
||||
default:
|
||||
virReportEnumRangeError(virMediatedDeviceModelType,
|
||||
mdevsrc->model);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuDomainDeviceDefValidateHostdev(const virDomainHostdevDef *hostdev,
|
||||
const virDomainDef *def,
|
||||
|
Loading…
x
Reference in New Issue
Block a user