diff --git a/arch/arm64/kvm/virtcca_mig.c b/arch/arm64/kvm/virtcca_mig.c index 6cba657af6b6445e01e023df15225ed483ad0abf..63e8e66a9cb7cb7926cad1628025cec64f151aa4 100644 --- a/arch/arm64/kvm/virtcca_mig.c +++ b/arch/arm64/kvm/virtcca_mig.c @@ -1418,6 +1418,13 @@ static int virtcca_mig_stream_create(struct kvm_device *dev, u32 type) dev->private = stream; stream->idx = atomic_inc_return(&mig_state->streams_created) - 1; /* set the stream idx of the cvm */ + if (stream->idx > 0) { + pr_info("stream idx needs reset!"); + atomic_set(&mig_state->streams_created, 0); + mig_state->vcpu_export_next_idx = 0; + stream->idx = 0; + } + if (!stream->idx) { ret = virtcca_mig_session_init(kvm); /* if is the first stream, call this func */ if (ret)