[libvirt PATCH] qemu: only stop external devices after the domain
Daniel Henrique Barboza
danielhb413 at gmail.com
Tue May 12 13:58:35 UTC 2020
On 5/12/20 10:48 AM, Daniel Henrique Barboza wrote:
>
>
> On 5/12/20 8:23 AM, Ján Tomko wrote:
>> A failure in qemuProcessLaunch would lead to qemuExtStopDevices
>> being called twice - once in the cleanup section and then again
>> in qemuProcessStop.
>>
>> However, the first one is called while the QEMU process is
>> still running, which is too soon for the swtpm process, because
>> the swtmp_ioctl command can lock up::
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=1822523
>>
>> Remove the first call and only leave the one in qemuProcessStop,
>> which is called after the QEMU process is killed.
>>
>> Signed-off-by: Ján Tomko <jtomko at redhat.com>
>> ---
>> src/qemu/qemu_process.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>> index dee3f3fb63..f7f6793113 100644
>> --- a/src/qemu/qemu_process.c
>> +++ b/src/qemu/qemu_process.c
>> @@ -6992,8 +6992,6 @@ qemuProcessLaunch(virConnectPtr conn,
>> ret = 0;
>> cleanup:
>> - if (ret < 0)
>> - qemuExtDevicesStop(driver, vm);
>
>
> This change makes this code obsolete:
>
>
> +++ b/src/qemu/qemu_process.c
> @@ -6866,11 +6866,6 @@ qemuProcessLaunch(virConnectPtr conn,
> incoming != NULL) < 0)
> goto cleanup;
>
> - /* Security manager labeled all devices, therefore
> - * if any operation from now on fails, we need to ask the caller to
> - * restore labels.
> - */
> - ret = -2;
>
> if (incoming && incoming->fd != -1) {
>
>
> You can remove the 'ret' variable altogether because no one in qemuProcessLaunch() is
> doing anything with it.
Nevermind, I misread what the code was doing. We need to differentiate the -1 and -2
return codes on error.
>
>
>
> Thanks,
>
>
> DHB
>
>
>> qemuDomainSecretDestroy(vm);
>> return ret;
>> }
>>
More information about the libvir-list
mailing list