[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 26/37] sd: free timer
From: |
Andrew Baumann |
Subject: |
Re: [Qemu-devel] [PATCH 26/37] sd: free timer |
Date: |
Thu, 21 Jul 2016 16:53:46 +0000 |
> From: Marc-André Lureau [mailto:address@hidden
> Sent: Thursday, 21 July 2016 4:15
> Hi Andrew,
>
> Since you introduced the timer, could you review this patch?
>
> thanks
>
>
> ---------- Forwarded message ----------
> From: <address@hidden>
> Date: Tue, Jul 19, 2016 at 12:54 PM
> Subject: [Qemu-devel] [PATCH 26/37] sd: free timer
> To: address@hidden
> Cc: Marc-André Lureau <address@hidden>
>
>
> From: Marc-André Lureau <address@hidden>
>
> Free the timer allocated in instance_init.
>
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
> hw/sd/sd.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/hw/sd/sd.c b/hw/sd/sd.c
> index 87c6dc1..8e88e83 100644
> --- a/hw/sd/sd.c
> +++ b/hw/sd/sd.c
> @@ -1876,6 +1876,14 @@ static void sd_instance_init(Object *obj)
> sd->ocr_power_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
> sd_ocr_powerup, sd); }
>
> +static void sd_instance_finalize(Object *obj) {
> + SDState *sd = SD_CARD(obj);
> +
> + timer_del(sd->ocr_power_timer);
> + timer_free(sd->ocr_power_timer);
> +}
> +
> static void sd_realize(DeviceState *dev, Error **errp) {
> SDState *sd = SD_CARD(dev);
> @@ -1927,6 +1935,7 @@ static const TypeInfo sd_info = {
> .class_size = sizeof(SDCardClass),
> .class_init = sd_class_init,
> .instance_init = sd_instance_init,
> + .instance_finalize = sd_instance_finalize,
> };
>
> static void sd_register_types(void)
Thanks for the fix. This was based on some other timer code I found in the tree
that was evidently also leaky (I don't remember where unfortunately).
One thing: are you sure it is safe to call timer_del() again if the timer may
already have been deleted? It looks that way from the implementation, but the
header comment isn't explicit.
Otherwise,
Reviewed-by: Andrew Baumann <address@hidden>
Cheers,
Andrew
- [Qemu-devel] [PATCH 23/37] pci-bus: do not allocate and leak bsel, (continued)
[Qemu-devel] [PATCH 25/37] ahci: free irqs array, marcandre . lureau, 2016/07/19
[Qemu-devel] [PATCH 26/37] sd: free timer, marcandre . lureau, 2016/07/19
[Qemu-devel] [PATCH 27/37] qjson: free str, marcandre . lureau, 2016/07/19
[Qemu-devel] [PATCH 28/37] virtio-input: free config list, marcandre . lureau, 2016/07/19
[Qemu-devel] [PATCH 29/37] ipmi: free extern timer, marcandre . lureau, 2016/07/19
[Qemu-devel] [PATCH 30/37] usb: free USBDevice.strings, marcandre . lureau, 2016/07/19