aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@linaro.org>2025-01-24 18:43:36 +0100
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2025-06-10 10:58:59 +0200
commita5844ea5530b664ea70852418fb751d63c15dba5 (patch)
treef0220a9911f7454e997c0d1a950910734f24b332
parentbc98ffdc7577e55ab8373c579c28fe24d600c40f (diff)
downloadqemu-a5844ea5530b664ea70852418fb751d63c15dba5.zip
qemu-a5844ea5530b664ea70852418fb751d63c15dba5.tar.gz
qemu-a5844ea5530b664ea70852418fb751d63c15dba5.tar.bz2
hw/char/sh_serial: Delete fifo_timeout_timer in DeviceUnrealize
fifo_timeout_timer is created in the DeviceRealize handler, not in the instance_init one. For parity, delete it in DeviceUnrealize, rather than instance_finalize. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20250124175053.74461-2-philmd@linaro.org>
-rw-r--r--hw/char/sh_serial.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 6abd803..cdaeac7 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -434,9 +434,9 @@ static void sh_serial_realize(DeviceState *d, Error **errp)
s->etu = NANOSECONDS_PER_SECOND / 9600;
}
-static void sh_serial_finalize(Object *obj)
+static void sh_serial_unrealize(DeviceState *dev)
{
- SHSerialState *s = SH_SERIAL(obj);
+ SHSerialState *s = SH_SERIAL(dev);
timer_del(&s->fifo_timeout_timer);
}
@@ -445,6 +445,10 @@ static void sh_serial_init(Object *obj)
{
}
+static void sh_serial_finalize(Object *obj)
+{
+}
+
static const Property sh_serial_properties[] = {
DEFINE_PROP_CHR("chardev", SHSerialState, chr),
DEFINE_PROP_UINT8("features", SHSerialState, feat, 0),
@@ -456,6 +460,7 @@ static void sh_serial_class_init(ObjectClass *oc, const void *data)
device_class_set_props(dc, sh_serial_properties);
dc->realize = sh_serial_realize;
+ dc->unrealize = sh_serial_unrealize;
device_class_set_legacy_reset(dc, sh_serial_reset);
/* Reason: part of SuperH CPU/SoC, needs to be wired up */
dc->user_creatable = false;