OSDN Git Service

colo: check chardev can switch context
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Wed, 5 Dec 2018 20:37:35 +0000 (00:37 +0400)
committerMarkus Armbruster <armbru@redhat.com>
Wed, 12 Dec 2018 08:55:57 +0000 (09:55 +0100)
COLO uses a worker context (iothread) to drive the chardev. All
backends are not able to switch the context, let's report an error in
this case.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20181205203737.9011-6-marcandre.lureau@redhat.com>
Reviewed-by: Li Zhijian <lizhiian@cn.fujitsu.com>
Reviewed-by: Zhang Chen <zhangckid@gmail.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
net/colo-compare.c

index a39191d..9156ab3 100644 (file)
@@ -957,6 +957,12 @@ static int find_and_check_chardev(Chardev **chr,
         return 1;
     }
 
+    if (!qemu_chr_has_feature(*chr, QEMU_CHAR_FEATURE_GCONTEXT)) {
+        error_setg(errp, "chardev \"%s\" cannot switch context",
+                   chr_name);
+        return 1;
+    }
+
     return 0;
 }