From 38d022b63b11e3f504dabab368ea87ff013c8e05 Mon Sep 17 00:00:00 2001 From: Thanos Makatos Date: Tue, 26 Jan 2021 12:40:58 +0000 Subject: don't remain in wrong migration iteration state after data have been prepared (#257) Signed-off-by: Thanos Makatos --- lib/migration.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib') diff --git a/lib/migration.c b/lib/migration.c index 489a6fc..e991dbb 100644 --- a/lib/migration.c +++ b/lib/migration.c @@ -277,6 +277,14 @@ handle_data_offset_when_saving(vfu_ctx_t *vfu_ctx, struct migration *migr, if (ret < 0) { return ret; } + /* + * FIXME must first read data_offset and then data_size. They way we've + * implemented it now, if data_size is read before data_offset we + * transition to state VFIO_USER_MIGR_ITER_STATE_DATA_PREPARED without + * calling callbacks.prepare_data, which is wrong. Maybe we need + * separate states for data_offset and data_size. + */ + migr_state_transition(migr, VFIO_USER_MIGR_ITER_STATE_DATA_PREPARED); break; case VFIO_USER_MIGR_ITER_STATE_DATA_PREPARED: /* -- cgit v1.1