[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/2] qdev: Add a 'free' method to disassociate chard
From: |
Amit Shah |
Subject: |
[Qemu-devel] [PATCH 1/2] qdev: Add a 'free' method to disassociate chardev from qdev device |
Date: |
Fri, 13 Jan 2012 15:24:58 +0530 |
When a device is removed, remove the association with a chardev, if any,
so that the chardev can be re-used later for other devices.
Reported-by: Qunfang Zhang <address@hidden>
Fix-suggested-by: Markus Armbruster <address@hidden>
Signed-off-by: Amit Shah <address@hidden>
---
hw/qdev-properties.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 663c2a0..02f0dae 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -680,6 +680,16 @@ static int parse_chr(DeviceState *dev, Property *prop,
const char *str)
return 0;
}
+static void free_chr(DeviceState *dev, Property *prop)
+{
+ CharDriverState **ptr = qdev_get_prop_ptr(dev, prop);
+
+ if (*ptr) {
+ qemu_chr_add_handlers(*ptr, NULL, NULL, NULL, NULL);
+ }
+}
+
+
static int print_chr(DeviceState *dev, Property *prop, char *dest, size_t len)
{
CharDriverState **ptr = qdev_get_prop_ptr(dev, prop);
@@ -699,6 +709,7 @@ PropertyInfo qdev_prop_chr = {
.print = print_chr,
.get = get_generic,
.set = set_generic,
+ .free = free_chr,
};
/* --- netdev device --- */
--
1.7.7.5