[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 28/37] virtio-input: free config list
From: |
marcandre . lureau |
Subject: |
[Qemu-devel] [PATCH 28/37] virtio-input: free config list |
Date: |
Tue, 19 Jul 2016 12:54:23 +0400 |
From: Marc-André Lureau <address@hidden>
Clear the list when finalizing. The list is created during realize with
virtio_input_idstr_config() and later by further calls to
virtio_input_init_config() and virtio_input_add_config().
Signed-off-by: Marc-André Lureau <address@hidden>
---
hw/input/virtio-input-hid.c | 1 +
hw/input/virtio-input.c | 10 ++++++++++
include/hw/virtio/virtio-input.h | 1 +
3 files changed, 12 insertions(+)
diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c
index 3ee0c18..0e5596e 100644
--- a/hw/input/virtio-input-hid.c
+++ b/hw/input/virtio-input-hid.c
@@ -340,6 +340,7 @@ static const TypeInfo virtio_input_hid_info = {
.instance_size = sizeof(VirtIOInputHID),
.class_init = virtio_input_hid_class_init,
.abstract = true,
+ .instance_finalize = virtio_input_finalize,
};
/* ----------------------------------------------------------------- */
diff --git a/hw/input/virtio-input.c b/hw/input/virtio-input.c
index edf6990..36a7d5e 100644
--- a/hw/input/virtio-input.c
+++ b/hw/input/virtio-input.c
@@ -285,6 +285,16 @@ static void virtio_input_device_realize(DeviceState *dev,
Error **errp)
virtio_input_save, virtio_input_load, vinput);
}
+void virtio_input_finalize(Object *obj)
+{
+ VirtIOInput *vinput = VIRTIO_INPUT(obj);
+ VirtIOInputConfig *cfg, *next;
+
+ QTAILQ_FOREACH_SAFE(cfg, &vinput->cfg_list, node, next) {
+ QTAILQ_REMOVE(&vinput->cfg_list, cfg, node);
+ g_free(cfg);
+ }
+}
static void virtio_input_device_unrealize(DeviceState *dev, Error **errp)
{
VirtIOInputClass *vic = VIRTIO_INPUT_GET_CLASS(dev);
diff --git a/include/hw/virtio/virtio-input.h b/include/hw/virtio/virtio-input.h
index 55db310..8fd790f 100644
--- a/include/hw/virtio/virtio-input.h
+++ b/include/hw/virtio/virtio-input.h
@@ -104,5 +104,6 @@ void virtio_input_add_config(VirtIOInput *vinput,
virtio_input_config *config);
void virtio_input_idstr_config(VirtIOInput *vinput,
uint8_t select, const char *string);
+void virtio_input_finalize(Object *obj);
#endif /* QEMU_VIRTIO_INPUT_H */
--
2.9.0
- Re: [Qemu-devel] [PATCH 24/37] pc: keep gsi reference, (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 <=
[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
[Qemu-devel] [PATCH 31/37] tests: free a bunch of qmp responses, marcandre . lureau, 2016/07/19
[Qemu-devel] [PATCH 32/37] usb: free leaking path, marcandre . lureau, 2016/07/19