mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
qemu: Always go through firmware autoselection
Right now there are a few scenarios in which we skip ahead, and removing these exceptions will make for more consistent and predictable behavior. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
63859189e6
commit
04568019c6
@ -1635,7 +1635,6 @@ int
|
|||||||
qemuFirmwareFillDomain(virQEMUDriver *driver,
|
qemuFirmwareFillDomain(virQEMUDriver *driver,
|
||||||
virDomainDef *def)
|
virDomainDef *def)
|
||||||
{
|
{
|
||||||
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
|
||||||
virDomainLoaderDef *loader = def->os.loader;
|
virDomainLoaderDef *loader = def->os.loader;
|
||||||
virStorageSource *nvram = loader ? loader->nvram : NULL;
|
virStorageSource *nvram = loader ? loader->nvram : NULL;
|
||||||
bool autoSelection = (def->os.firmware != VIR_DOMAIN_OS_DEF_FIRMWARE_NONE);
|
bool autoSelection = (def->os.firmware != VIR_DOMAIN_OS_DEF_FIRMWARE_NONE);
|
||||||
@ -1677,33 +1676,6 @@ qemuFirmwareFillDomain(virQEMUDriver *driver,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For UEFI with firmware autoselection disabled, even if some of
|
|
||||||
* the information is missing we might still be able to avoid
|
|
||||||
* having to look at firmware descriptors */
|
|
||||||
if (!autoSelection &&
|
|
||||||
virDomainDefHasOldStyleROUEFI(def) &&
|
|
||||||
loader->path) {
|
|
||||||
|
|
||||||
/* For stateless firmwares, the firmware path is all we need */
|
|
||||||
if (loader->stateless == VIR_TRISTATE_BOOL_YES)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* If the path to the NVRAM file is already provided and it
|
|
||||||
* points to a non-local source, we don't need to look up any
|
|
||||||
* other information */
|
|
||||||
if (loader->nvram && !virStorageSourceIsLocalStorage(loader->nvram))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* If we have the path to both the firmware itself and the
|
|
||||||
* corresponding NVRAM template we might still need to
|
|
||||||
* generate a path to the domain-specific NVRAM file, but
|
|
||||||
* otherwise we're good to go */
|
|
||||||
if (loader->nvramTemplate) {
|
|
||||||
qemuFirmwareEnsureNVRAM(def, cfg, loader->format);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Look for the information we need in firmware descriptors */
|
/* Look for the information we need in firmware descriptors */
|
||||||
if ((ret = qemuFirmwareFillDomainModern(driver, def)) < 0)
|
if ((ret = qemuFirmwareFillDomainModern(driver, def)) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user