> @@ -1016,16 +1016,16 @@ impl ObjectImpl for HPETState { > static VMSTATE_HPET: VMStateDescription = VMStateDescription { > name: c"hpet".as_ptr(), > version_id: 2, > - minimum_version_id: 1, > + minimum_version_id: 2, > pre_save: Some(hpet_pre_save), > post_load: Some(hpet_post_load), > fields: vmstate_fields! { > vmstate_of!(HPETState, config), > vmstate_of!(HPETState, int_status), > vmstate_of!(HPETState, counter), > - vmstate_of!(HPETState, num_timers_save).with_version_id(2), > + vmstate_of!(HPETState, num_timers_save), > vmstate_validate!(HPETState, VALIDATE_TIMERS_NAME, > HPETState::validate_num_timers), > - vmstate_struct!(HPETState, timers[0 .. num_timers], > &VMSTATE_HPET_TIMER, BqlRefCell<HPETTimer>, > HPETState::validate_num_timers).with_version_id(0), > + vmstate_struct!(HPETState, timers[0 .. num_timers_save], > &VMSTATE_HPET_TIMER, BqlRefCell<HPETTimer>, > HPETState::validate_num_timers).with_version_id(0), > },
Here Rust and C take slightly different paths. Either changes should be made in the C version as well, or the "functional\ [#issues]_ replacements" issue note in docs/devel/rust.rst needs to be updated as well. I think the former is simpler! Otherwise, Reviewed-by: Zhao Liu <zhao1....@intel.com>