Re: [Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
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 kra...@redhat.com --- 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... -- Eric Blake eblake redhat com+1-919-301-3266 Libvirt virtualization library http://libvirt.org signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
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 kra...@redhat.com --- 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
Re: [Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
Hi, 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 } Please double-check. Current master (87d23f78aa79b72da022afda358bbc8a8509ca70 to be exact) works just fine for me. libvirt works, including a serial line redirected to pty, and 'info chardev' looks sane too. cheers, Gerd
Re: [Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
On 05/31/13 15:21, Gerd Hoffmann wrote: Hi, Hi, Please double-check. Current master (87d23f78aa79b72da022afda358bbc8a8509ca70 to be exact) works just fine for me. libvirt works, including a serial line redirected to pty, and 'info chardev' looks sane too. sorry for the fuzz. :/ Upstream is really working, One of the tested binaries was actually predating the pull of your fix and I forgot to verify that as It was built yesterday. Again sorry for the noise, it's working now. Peter cheers, Gerd
[Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
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 kra...@redhat.com --- 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 { -- 1.7.9.7
Re: [Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
On 05/28/13 08:34, 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 kra...@redhat.com --- 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 { this one is a stable candidate, cc'ing qemu-stable cheers, Gerd
[Qemu-devel] [PATCH 2/2] chardev: fix info chardev output
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 kra...@redhat.com --- 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 { -- 1.7.9.7