qemuBuildHostdevMediatedDevProps: Format 'ramfb' only when enabled

Before commit 73c352ab8c which converted the hostdev commandline
formatter to JSON the 'ramfb' property was formatted only if it was
enabled.

The main reason for that is that enabling 'ramfb' switches the device
model to 'vfio-pci-nohotplug' which actually has the property, while
'vfio-pci' (used when 'ramfb' is disabled or absent) doesn't have it.

Restore the logic to format 'ramfb' only when it's enabled and add a
comment that it's deliberate.

Fixes: 73c352ab8c
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2024435
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2021-11-18 09:23:09 +01:00
parent 2cb53c61cf
commit c3bf7f5e62

View File

@ -5331,6 +5331,8 @@ qemuBuildHostdevMediatedDevProps(const virDomainDef *def,
g_autoptr(virJSONValue) props = NULL;
virDomainHostdevSubsysMediatedDev *mdevsrc = &dev->source.subsys.u.mdev;
g_autofree char *mdevPath = NULL;
/* 'ramfb' property must be omitted unless it's to be enabled */
bool ramfb = mdevsrc->ramfb == VIR_TRISTATE_SWITCH_ON;
mdevPath = virMediatedDeviceGetSysfsPath(mdevsrc->uuidstr);
@ -5339,7 +5341,7 @@ qemuBuildHostdevMediatedDevProps(const virDomainDef *def,
"s:id", dev->info->alias,
"s:sysfsdev", mdevPath,
"S:display", qemuOnOffAuto(mdevsrc->display),
"T:ramfb", mdevsrc->ramfb,
"B:ramfb", ramfb,
"p:bootindex", dev->info->bootIndex,
NULL) < 0)
return NULL;