Whilst performing a random migration test for the Mac machines I noticed a regression (patch 1) which prevented the loadvm from completing successfully. A big thank you to Peter and David on IRC who pointed me in the right direction in order to fix the bug.
Once that was working I spent a bit more time analysing the migration stream and realised that the mos6522 device state wasn't being embedded within the CUDA device, but instead being maintained separately which is solved by patch 2. Patch 3 is something I noticed whilst rearranging the existing code based upon my better understanding of QOM/qdev and ensures that the timer frequency is always set correctly post-migration for the device and its parent class. This leaves no remaining functionality in the mos6522 realize function and so allows it to be removed. Finally patch 4 was suggested by Peter on IRC whilst helping me investigate the original migration issue, and removes the last remaining user of VMSTATE_TIMER_PTR_TEST from the codebase. Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> Mark Cave-Ayland (4): mos6522: fix vmstate_mos6522_timer version in vmstate_mos6522 cuda: embed mos6522_cuda device directly rather than using QOM object link mos6522: move timer frequency initialisation to mos6522_reset mos6522: convert VMSTATE_TIMER_PTR_TEST to VMSTATE_TIMER_PTR hw/misc/macio/cuda.c | 50 +++++++++++++++++++------------------------- hw/misc/mos6522.c | 26 ++++++----------------- include/hw/misc/macio/cuda.h | 27 +++++++++++------------- include/hw/misc/mos6522.h | 4 +++- 4 files changed, 42 insertions(+), 65 deletions(-) -- 2.11.0