[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V3] chardev: fix parallel device can't be reconn
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH V3] chardev: fix parallel device can't be reconnect |
Date: |
Thu, 13 Jul 2017 13:36:33 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
On 12/07/2017 17:41, Peng Hao wrote:
> 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>
> ---
> hw/char/parallel.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> index 75a1a2f..b33bbb8 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, s, NULL, true);
> if (qemu_chr_fe_ioctl(&s->chr, CHR_IOCTL_PP_READ_STATUS, &dummy) == 0) {
> s->hw_driver = 1;
> s->status = dummy;
>
Sounds good for a simple fix.
Thanks,
Paolo