qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 1/2] qdev: Add a 'free' method to disassociate ch


From: Amit Shah
Subject: [Qemu-devel] [PATCH v2 1/2] qdev: Add a 'free' method to disassociate chardev from qdev device
Date: Fri, 13 Jan 2012 15:29:47 +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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]