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

2013-05-31 Thread Eric Blake
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

2013-05-31 Thread Peter Krempa
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

2013-05-31 Thread Gerd Hoffmann
  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

2013-05-31 Thread Peter Krempa

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

2013-05-28 Thread Gerd Hoffmann
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

2013-05-28 Thread Gerd Hoffmann
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

2013-05-28 Thread Gerd Hoffmann
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