mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
qemu: Fix validation of PCI option rom settings on hotplug
Commit24be92b8e
moved the option rom settings validation code to the validation callbacks, but that doesn't work properly with device hotplug as we assign addresses only after parsing the whole XML. The check is too strict for that and caused failures when hotplugging devices such as: <interface type='network'> <source network='default'/> <model type='virtio'/> <rom enabled='no'/> </interface> This patch relaxes the check in the validation callback to accept also _NONE and _UNASSIGNED address types and returns the check to 'qemuBuildRomProps' so that we preserve the full validation as we've used to. Fixes:24be92b8e3
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2021437 Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
d120fc5253
commit
a453ebcd2b
@ -1147,6 +1147,12 @@ qemuBuildRomProps(virJSONValue *props,
|
||||
!info->romfile)
|
||||
return 0;
|
||||
|
||||
if (info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("ROM tuning is only supported for PCI devices"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (info->romenabled == VIR_TRISTATE_BOOL_NO) {
|
||||
romfile = "";
|
||||
} else {
|
||||
|
@ -1485,7 +1485,9 @@ qemuValidateDomainDeviceInfo(const virDomainDeviceDef *dev,
|
||||
}
|
||||
|
||||
if (info->romenabled || info->rombar || info->romfile) {
|
||||
if (info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
|
||||
if (info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
|
||||
info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE &&
|
||||
info->type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_UNASSIGNED) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||
_("ROM tuning is only supported for PCI devices"));
|
||||
return -1;
|
||||
|
Loading…
Reference in New Issue
Block a user