* Peter Xu (pet...@redhat.com) wrote:
> With commit 82137e6c8c ("migration: enforce multifd and postcopy preempt to
> be set before incoming"), and if postcopy preempt / multifd is enabled, one
> cannot setup any capability because these checks would always fail.
> 
> (qemu) migrate_set_capability xbzrle off
> Error: Postcopy preempt must be set before incoming starts
> 
> To fix it, check existing cap and only raise an error if the specific cap
> changed.
> 
> Fixes: 82137e6c8c ("migration: enforce multifd and postcopy preempt to be set 
> before incoming")
> Signed-off-by: Peter Xu <pet...@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <d...@treblig.org>

> ---
>  migration/options.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/migration/options.c b/migration/options.c
> index 3fcd577cd7..162c72cda4 100644
> --- a/migration/options.c
> +++ b/migration/options.c
> @@ -568,7 +568,7 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, 
> Error **errp)
>              return false;
>          }
>  
> -        if (migrate_incoming_started()) {
> +        if (!migrate_postcopy_preempt() && migrate_incoming_started()) {
>              error_setg(errp,
>                         "Postcopy preempt must be set before incoming 
> starts");
>              return false;
> @@ -576,7 +576,7 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, 
> Error **errp)
>      }
>  
>      if (new_caps[MIGRATION_CAPABILITY_MULTIFD]) {
> -        if (migrate_incoming_started()) {
> +        if (!migrate_multifd() && migrate_incoming_started()) {
>              error_setg(errp, "Multifd must be set before incoming starts");
>              return false;
>          }
> -- 
> 2.49.0
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

Reply via email to