Eric Blake wrote: > On 10/01/2010 02:09 PM, Jiri Denemark wrote: >> --- >> src/xen/xend_internal.c | 15 +++++++++------ >> 1 files changed, 9 insertions(+), 6 deletions(-) >> >> diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c >> index 1318bd4..4fba6af 100644 >> --- a/src/xen/xend_internal.c >> +++ b/src/xen/xend_internal.c >> @@ -3904,8 +3904,9 @@ xenDaemonAttachDeviceFlags(virDomainPtr domain, >> const char *xml, >> /* Xen only supports modifying both live and persistent config if >> * xendConfigVersion>= 3 >> */ >> - if (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE | >> - VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) { >> + if (priv->xendConfigVersion>= 3&& >> + (flags != (VIR_DOMAIN_DEVICE_MODIFY_LIVE | >> + VIR_DOMAIN_DEVICE_MODIFY_CONFIG))) { >> virXendError(VIR_ERR_OPERATION_INVALID, "%s", >> _("Xend only supports modifying both live and " >> "persistent config")); > > The comment says: > > _LIVE|_CONFIG is supported only if version>=3 > > logically, this tells me nothing about version < 3, nor about setting > one but not both flags. > > Meanwhile, the code says: > > if version >=3, _LIVE|_CONFIG is the only supported combo > > Are we sure this is the right change? What happens with version < 3? > > It seems like we need a 12-way table (in fact, this is pretty much > what I ended up resorting to with my vcpus stuff). Yes, good idea. > Here's my shot at it, from reading the comments (but not actually > testing it); once we fix this attempt to an actual table, then I can > answer whether the code matches the table. > > > _LIVE _CONFIG _LIVE|_CONFIG > xen 2,running good unsupported unsupported > xen 2,inactive error good error or silently good > xen 3,running good good good I'm not aware of any way to _only_ hot(un)plug or _only_ change persistent config in this case. If xend's device_create op is called on a running domain, the device is hotplugged *and* it is added to the config. > xen 3,inactive error good error or silently good > > where the 'error or silently good' depends on our decision of whether > an inactive domain should silently ignore _LIVE. Otherwise the table looks correct. And IMO "silently good" is acceptable. Jim -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list