From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bQgTA-0005cv-Kh for qemu-devel@nongnu.org; Fri, 22 Jul 2016 15:50:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bQgT9-00004z-QI for qemu-devel@nongnu.org; Fri, 22 Jul 2016 15:50:48 -0400 Received: from mail-oi0-x242.google.com ([2607:f8b0:4003:c06::242]:35947) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bQgT9-00004v-LJ for qemu-devel@nongnu.org; Fri, 22 Jul 2016 15:50:47 -0400 Received: by mail-oi0-x242.google.com with SMTP id d204so11270023oig.3 for ; Fri, 22 Jul 2016 12:50:47 -0700 (PDT) Sender: Corey Minyard From: minyard@acm.org Date: Fri, 22 Jul 2016 14:50:39 -0500 Message-Id: <1469217041-15358-3-git-send-email-minyard@acm.org> In-Reply-To: <1469217041-15358-1-git-send-email-minyard@acm.org> References: <1469217041-15358-1-git-send-email-minyard@acm.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v3 2/4] wdt_i6300esb: Free timer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , minyard@acm.org, Corey Minyard , "Richard W . M . Jones" From: Corey Minyard Add an exit function to free the timer allocated in the realize function. Signed-off-by: Corey Minyard Cc: Richard W.M. Jones Reviewed-by: Marc-André Lureau Reviewed-by: Richard W.M. Jones --- hw/watchdog/wdt_i6300esb.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c index a83d951..aa64457 100644 --- a/hw/watchdog/wdt_i6300esb.c +++ b/hw/watchdog/wdt_i6300esb.c @@ -428,6 +428,15 @@ static void i6300esb_realize(PCIDevice *dev, Error **errp) /* qemu_register_coalesced_mmio (addr, 0x10); ? */ } +static void i6300esb_exit(PCIDevice *dev) +{ + I6300State *d = WATCHDOG_I6300ESB_DEVICE(dev); + + timer_del(d->timer); + timer_free(d->timer); + d->timer = NULL; +} + static WatchdogTimerModel model = { .wdt_name = "i6300esb", .wdt_description = "Intel 6300ESB", @@ -441,6 +450,7 @@ static void i6300esb_class_init(ObjectClass *klass, void *data) k->config_read = i6300esb_config_read; k->config_write = i6300esb_config_write; k->realize = i6300esb_realize; + k->exit = i6300esb_exit; k->vendor_id = PCI_VENDOR_ID_INTEL; k->device_id = PCI_DEVICE_ID_INTEL_ESB_9; k->class_id = PCI_CLASS_SYSTEM_OTHER; -- 2.7.4