[libvirt] [PATCH] conf: Fix ABI stability check for spicevmc channel

Jiri Denemark jdenemar at redhat.com
Fri Aug 17 12:20:42 UTC 2012


Change device type of a virtio channel from/to spicevmc is not a user
visible change. However, spicevmc channels use different default target
name than other virtio channels. To maintain ABI stability during this
change target name must be explicitly specified (and equal) in both
configurations.
---
 src/conf/domain_conf.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index a2e73c6..a330b0e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10075,6 +10075,15 @@ static bool virDomainChannelDefCheckABIStability(virDomainChrDefPtr src,
                            NULLSTR(dst->target.name), NULLSTR(src->target.name));
             goto cleanup;
         }
+        if (src->source.type != dst->source.type &&
+            (src->source.type == VIR_DOMAIN_CHR_TYPE_SPICEVMC ||
+             dst->source.type == VIR_DOMAIN_CHR_TYPE_SPICEVMC) &&
+            !src->target.name) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("Changing device type to/from spicevmc would"
+                             " change default target channel name"));
+            goto cleanup;
+        }
         break;
     case VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD:
         if (memcmp(src->target.addr, dst->target.addr,
-- 
1.7.11.1




More information about the libvir-list mailing list