50 lines
1.7 KiB
Diff
50 lines
1.7 KiB
Diff
|
From eb7a20a3616085d46aa6b4b4224e15587ec67e6e Mon Sep 17 00:00:00 2001
|
||
|
From: Li Qiang <liqiang6-s@360.cn>
|
||
|
Date: Mon, 28 Nov 2016 17:49:04 -0800
|
||
|
Subject: [PATCH] watchdog: 6300esb: add exit function
|
||
|
|
||
|
When the Intel 6300ESB watchdog is hot unplug. The timer allocated
|
||
|
in realize isn't freed thus leaking memory leak. This patch avoid
|
||
|
this through adding the exit function.
|
||
|
|
||
|
http://git.qemu.org/?p=qemu.git;a=patch;h=eb7a20a3616085d46aa6b4b4224e15587ec67e6e
|
||
|
this patch is from qemu-git.
|
||
|
|
||
|
Signed-off-by: Li Qiang <liqiang6-s@360.cn>
|
||
|
Message-Id: <583cde9c.3223ed0a.7f0c2.886e@mx.google.com>
|
||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||
|
---
|
||
|
hw/watchdog/wdt_i6300esb.c | 9 +++++++++
|
||
|
1 files changed, 9 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
|
||
|
index a83d951..49b3cd1 100644
|
||
|
--- a/hw/watchdog/wdt_i6300esb.c
|
||
|
+++ b/hw/watchdog/wdt_i6300esb.c
|
||
|
@@ -428,6 +428,14 @@ 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);
|
||
|
+}
|
||
|
+
|
||
|
static WatchdogTimerModel model = {
|
||
|
.wdt_name = "i6300esb",
|
||
|
.wdt_description = "Intel 6300ESB",
|
||
|
@@ -441,6 +449,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;
|
||
|
--
|
||
|
1.7.0.4
|
||
|
|