On Tue, 2020-09-08 at 19:28 +0200, Michal Privoznik wrote: > In 8e1804f9f66 I've tried to fix the following use case: domain > is started with path to UEFI only and relies on libvirt to figure > out corresponding NVRAM template to create a per-domain copy > from. The fix consisted of having a check tailored exactly for > this use case and if it's hit then using FW autoselection to > figure it out. Unfortunately, the NVRAM template is not saved in > the inactive XML (well, the domain might be transient anyway). > Then, as a part of that check we see whether the per-domain copy > doesn't exist already and if it does then no template is looked > up hence no template will appear in the live XML. > > This works, until the domain is migrated. At the destination, the > per-domain copy will not exist so we need to know the template to > create the per-domain copy from. But we don't even get to the > check because we are not starting a fresh new domain and thus the > qemuFirmwareFillDomain() function quits early. > > The solution is to switch order of these two checks. That is > evaluate the check for the old style before checking flags. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1852910 > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > src/qemu/qemu_firmware.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) Reviewed-by: Andrea Bolognani <abologna@xxxxxxxxxx> -- Andrea Bolognani / Red Hat / Virtualization