qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/2] chardev: fix "info chardev" output


From: Peter Krempa
Subject: Re: [Qemu-devel] [PATCH 2/2] chardev: fix "info chardev" output
Date: Fri, 31 May 2013 14:45:29 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130509 Thunderbird/17.0.6

On 05/31/13 14:36, Eric Blake wrote:
> On 05/28/2013 12:34 AM, Gerd Hoffmann wrote:
>> Fill unset CharDriverState->filename with the backend name, so
>> 'info chardev' will return at least the chardev type.  Don't
>> touch it in case the chardev init function filled it already,
>> like the socket+pty chardevs do for example.
>>
>> Signed-off-by: Gerd Hoffmann <address@hidden>
>> ---
>>   qemu-char.c |    3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/qemu-char.c b/qemu-char.c
>> index f825294..d04b429 100644
>> --- a/qemu-char.c
>> +++ b/qemu-char.c
>> @@ -3801,6 +3801,9 @@ ChardevReturn *qmp_chardev_add(const char *id, 
>> ChardevBackend *backend,
>>           chr->label = g_strdup(id);
>>           chr->avail_connections =
>>               (backend->kind == CHARDEV_BACKEND_KIND_MUX) ? MAX_MUX : 1;
>> +        if (!chr->filename) {
>> +            chr->filename = 
>> g_strdup(ChardevBackendKind_lookup[backend->kind]);
>> +        }
>>           QTAILQ_INSERT_TAIL(&chardevs, chr, next);
>>           return ret;
>>       } else {
>>
> 
> Peter was telling me on IRC that this patch is still broken with regards
> to libvirt; I've cc'd him to provide more details...
> 

Without this patch the returned message for "query-chardev" is:

{
    "return": [
        {
            "filename": "pty:/dev/pts/8",
            "label": "charserial0"
        },
        {
            "filename": "unix:/var/lib/libvirt/qemu/qemu-git.monitor,server",
            "label": "charmonitor"
        }
    ],
    "id": "libvirt-2"
}


this patch changes it to:

{
    "return": [
        {
            "filename": "pty",
            "label": "charserial0"
        },
        {
            "filename": "unix:/var/lib/libvirt/qemu/qemu-git.monitor,server",
            "label": "charmonitor"
        }
    ],
    "id": "libvirt-2"
}

It's apparent that some code being executed after the code in this patch
fills the actual pty path that was allocated. With it pre-allocated the
code ignores it. Libvirt is using the output to gather names of the pty
so that they can be used to connect to the console.

Peter



reply via email to

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