This series delay timer_new from init into realize to avoid memleaks when we call 'device_list_properties'. And do timer_free only in s390x_cpu_finalize because it's hotplugable. However, It's not valid in mos6522 if we move timer_new from init to realize, because it's never called at all. So we also add calls to mos6522_realize() in mac_via_realize to make this move to be valid.
v1: - Delay timer_new() from init() to realize() to fix memleaks. v2: - Similarly to other cleanups, move timer_new into realize in target/s390x/cpu.c (Suggested by Philippe Mathieu-Daudé). - Send these two patches as a series instead of send each as a single patch but with wrong subject in v1. v3: - It's not valid in mos6522 if we move timer_new from init to realize, because it's never called at all. Thus, we remove null check in reset, and add calls to mos6522_realize() in mac_via_realize to make this move to be valid. - split patch by device to make it more clear. Pan Nengyuan (6): s390x: fix memleaks in cpu_finalize hw/arm/pxa2xx: move timer_new from init() into realize() to avoid memleaks hw/arm/spitz: move timer_new from init() into realize() to avoid memleaks hw/arm/strongarm: move timer_new from init() into realize() to avoid memleaks hw/misc/mos6522: move timer_new from init() into realize() to avoid memleaks hw/timer/cadence_ttc: move timer_new from init() into realize() to avoid memleaks hw/arm/pxa2xx.c | 17 +++++++++++------ hw/arm/spitz.c | 8 +++++++- hw/arm/strongarm.c | 18 ++++++++++++------ hw/misc/mac_via.c | 5 +++++ hw/misc/mos6522.c | 6 ++++++ hw/timer/cadence_ttc.c | 16 +++++++++++----- target/s390x/cpu.c | 22 ++++++++++++++++++---- 7 files changed, 70 insertions(+), 22 deletions(-) -- 2.18.2