diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2021-08-05 17:57:15 +0400 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2021-08-31 17:25:14 +0400 |
commit | 90208bc9657b7e0f8a6bc6af82b69c65c97b2d64 (patch) | |
tree | 3159620ffcdfd8df6cdf8d5963a63d87db5291c5 /ui/vdagent.c | |
parent | 8038c5b64649b2d8ed9bf3dd7fac4bb2536524c6 (diff) |
ui/vdagent: add a migration blocker
The current implementation lacks migration support. After migration,
vdagent support will be broken (even after a restart of the daemons).
Let's try to fix it in 6.2.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210805135715.857938-19-marcandre.lureau@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui/vdagent.c')
-rw-r--r-- | ui/vdagent.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ui/vdagent.c b/ui/vdagent.c index 7d8cb963ff..19e8fbfc96 100644 --- a/ui/vdagent.c +++ b/ui/vdagent.c @@ -6,6 +6,7 @@ #include "qemu/option.h" #include "qemu/units.h" #include "hw/qdev-core.h" +#include "migration/blocker.h" #include "ui/clipboard.h" #include "ui/console.h" #include "ui/input.h" @@ -23,6 +24,9 @@ struct VDAgentChardev { Chardev parent; + /* TODO: migration isn't yet supported */ + Error *migration_blocker; + /* config */ bool mouse; bool clipboard; @@ -599,6 +603,10 @@ static void vdagent_chr_open(Chardev *chr, return; #endif + if (migrate_add_blocker(vd->migration_blocker, errp) != 0) { + return; + } + vd->mouse = VDAGENT_MOUSE_DEFAULT; if (cfg->has_mouse) { vd->mouse = cfg->mouse; @@ -832,14 +840,18 @@ static void vdagent_chr_init(Object *obj) VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(obj); buffer_init(&vd->outbuf, "vdagent-outbuf"); + error_setg(&vd->migration_blocker, + "The vdagent chardev doesn't yet support migration"); } static void vdagent_chr_fini(Object *obj) { VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(obj); + migrate_del_blocker(vd->migration_blocker); vdagent_disconnect(vd); buffer_free(&vd->outbuf); + error_free(vd->migration_blocker); } static const TypeInfo vdagent_chr_type_info = { |