Message ID | 20241105182725.2393425-1-peterx@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | migration: Check current_migration in migration_is_running() | expand |
On 11/5/24 10:27, Peter Xu wrote: > Report shows that commit 34a8892dec broke iotest 055: > > https://lore.kernel.org/r/b8806360-a2b6-4608-83a3-db67e264c733@linaro.org > > When replacing migration_is_idle() with "!migration_is_running()", it was > overlooked that the idle helper also checks for current_migration being > available first. > > The check would be there if the whole series was applied, but since the > last patches in the previous series rely on some other patches to land > first, we need to recover the behavior of migration_is_idle() first before > that whole set will be merged. > > I left migration_is_active / migration_is_device alone, as I don't think > it's possible for them to hit his case (current_migration not initialized). > Also they're prone to removal soon from VFIO side. > > Cc: Fabiano Rosas <farosas@suse.de> > Cc: Peter Maydell <peter.maydell@linaro.org> > Fixes: 34a8892dec ("migration: Drop migration_is_idle()") > Reported-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > Tested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > Signed-off-by: Peter Xu <peterx@redhat.com> > --- > migration/migration.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/migration/migration.c b/migration/migration.c > index aedf7f0751..8c5bd0a75c 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -1117,6 +1117,10 @@ bool migration_is_running(void) > { > MigrationState *s = current_migration; > > + if (!s) { > + return false; > + } > + > switch (s->state) { > case MIGRATION_STATUS_ACTIVE: > case MIGRATION_STATUS_POSTCOPY_ACTIVE: Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Peter Xu <peterx@redhat.com> writes: > Report shows that commit 34a8892dec broke iotest 055: > > https://lore.kernel.org/r/b8806360-a2b6-4608-83a3-db67e264c733@linaro.org > > When replacing migration_is_idle() with "!migration_is_running()", it was > overlooked that the idle helper also checks for current_migration being > available first. > > The check would be there if the whole series was applied, but since the > last patches in the previous series rely on some other patches to land > first, we need to recover the behavior of migration_is_idle() first before > that whole set will be merged. > > I left migration_is_active / migration_is_device alone, as I don't think > it's possible for them to hit his case (current_migration not initialized). > Also they're prone to removal soon from VFIO side. > > Cc: Fabiano Rosas <farosas@suse.de> > Cc: Peter Maydell <peter.maydell@linaro.org> > Fixes: 34a8892dec ("migration: Drop migration_is_idle()") > Reported-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > Tested-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> > Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de>
diff --git a/migration/migration.c b/migration/migration.c index aedf7f0751..8c5bd0a75c 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1117,6 +1117,10 @@ bool migration_is_running(void) { MigrationState *s = current_migration; + if (!s) { + return false; + } + switch (s->state) { case MIGRATION_STATUS_ACTIVE: case MIGRATION_STATUS_POSTCOPY_ACTIVE: