qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PULL 28/41] chardev: fix parallel device can't be reconnec


From: Paolo Bonzini
Subject: [Qemu-devel] [PULL 28/41] chardev: fix parallel device can't be reconnect
Date: Thu, 13 Jul 2017 16:24:21 +0200

From: Peng Hao <address@hidden>

Parallel device don't register be->chr_can_read function, but remote
disconnect event is handled in chr_read.So connected parallel device
can not detect remote disconnect event. The chardevs with chr_can_read=NULL
has the same problem.

Signed-off-by: Peng Hao <address@hidden>
Reviewed-by: Wang Yechao <address@hidden>
Reviewed-by: Jiang Biao <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
 hw/char/parallel.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index 055789f..f79dc76 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -503,6 +503,10 @@ static const VMStateDescription vmstate_parallel_isa = {
     }
 };
 
+static int parallel_can_receive(void *opaque)
+{
+     return 1;
+}
 
 static void parallel_isa_realizefn(DeviceState *dev, Error **errp)
 {
@@ -535,6 +539,8 @@ static void parallel_isa_realizefn(DeviceState *dev, Error 
**errp)
     isa_init_irq(isadev, &s->irq, isa->isairq);
     qemu_register_reset(parallel_reset, s);
 
+    qemu_chr_fe_set_handlers(&s->chr, parallel_can_receive, NULL,
+                             NULL, NULL, s, NULL, true);
     if (qemu_chr_fe_ioctl(&s->chr, CHR_IOCTL_PP_READ_STATUS, &dummy) == 0) {
         s->hw_driver = 1;
         s->status = dummy;
-- 
1.8.3.1





reply via email to

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