Patchwork [1/2] qdev: Allow hot-plug for lists with pre-filled descriptors

login
register
mail settings
Submitter Amit Shah
Date Feb. 10, 2011, 10:16 a.m.
Message ID <f7b414baf43f7e25050a9388e16e807dae7bf8a3.1297332970.git.amit.shah@redhat.com>
Download mbox | patch
Permalink /patch/82589/
State New
Headers show

Comments

Amit Shah - Feb. 10, 2011, 10:16 a.m.
This will be needed for hot-plugging chardevs.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
---
 monitor.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
Markus Armbruster - Feb. 10, 2011, 11:57 a.m.
Amit Shah <amit.shah@redhat.com> writes:

> This will be needed for hot-plugging chardevs.
>
> Signed-off-by: Amit Shah <amit.shah@redhat.com>
> ---
>  monitor.c |    4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
>
> diff --git a/monitor.c b/monitor.c
> index 7fc311d..f3d7ab3 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -74,8 +74,6 @@
>   * 'O'          option string of the form NAME=VALUE,...
>   *              parsed according to QemuOptsList given by its name
>   *              Example: 'device:O' uses qemu_device_opts.
> - *              Restriction: only lists with empty desc are supported
> - *              TODO lift the restriction
>   * 'i'          32 bit integer
>   * 'l'          target long (32 or 64 bit)
>   * 'M'          just like 'l', except in user mode the value is
> @@ -4064,7 +4062,7 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon,
>                  QemuOpts *opts;
>  
>                  opts_list = qemu_find_opts(key);
> -                if (!opts_list || opts_list->desc->name) {
> +                if (!opts_list) {
>                      goto bad_type;
>                  }
>                  while (qemu_isspace(*p)) {

Uh, there's more to do that just kill the check (that's why I put in the
TODO in the first place), but my virus-addled brain can't quite remember
the details right now :(
Amit Shah - Feb. 10, 2011, 12:08 p.m.
On (Thu) 10 Feb 2011 [12:57:30], Markus Armbruster wrote:
> Amit Shah <amit.shah@redhat.com> writes:
> 
> > This will be needed for hot-plugging chardevs.
> >
> > Signed-off-by: Amit Shah <amit.shah@redhat.com>
> > ---
> >  monitor.c |    4 +---
> >  1 files changed, 1 insertions(+), 3 deletions(-)
> >
> > diff --git a/monitor.c b/monitor.c
> > index 7fc311d..f3d7ab3 100644
> > --- a/monitor.c
> > +++ b/monitor.c
> > @@ -74,8 +74,6 @@
> >   * 'O'          option string of the form NAME=VALUE,...
> >   *              parsed according to QemuOptsList given by its name
> >   *              Example: 'device:O' uses qemu_device_opts.
> > - *              Restriction: only lists with empty desc are supported
> > - *              TODO lift the restriction
> >   * 'i'          32 bit integer
> >   * 'l'          target long (32 or 64 bit)
> >   * 'M'          just like 'l', except in user mode the value is
> > @@ -4064,7 +4062,7 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon,
> >                  QemuOpts *opts;
> >  
> >                  opts_list = qemu_find_opts(key);
> > -                if (!opts_list || opts_list->desc->name) {
> > +                if (!opts_list) {
> >                      goto bad_type;
> >                  }
> >                  while (qemu_isspace(*p)) {
> 
> Uh, there's more to do that just kill the check (that's why I put in the
> TODO in the first place),

I thought so :-)

This did work for me for a few runs, and I really haven't traversed the
depths of qdev so sent it out anyway for comment.

> but my virus-addled brain can't quite remember
> the details right now :(

Wish you a speedy recovery in the meantime!

		Amit

Patch

diff --git a/monitor.c b/monitor.c
index 7fc311d..f3d7ab3 100644
--- a/monitor.c
+++ b/monitor.c
@@ -74,8 +74,6 @@ 
  * 'O'          option string of the form NAME=VALUE,...
  *              parsed according to QemuOptsList given by its name
  *              Example: 'device:O' uses qemu_device_opts.
- *              Restriction: only lists with empty desc are supported
- *              TODO lift the restriction
  * 'i'          32 bit integer
  * 'l'          target long (32 or 64 bit)
  * 'M'          just like 'l', except in user mode the value is
@@ -4064,7 +4062,7 @@  static const mon_cmd_t *monitor_parse_command(Monitor *mon,
                 QemuOpts *opts;
 
                 opts_list = qemu_find_opts(key);
-                if (!opts_list || opts_list->desc->name) {
+                if (!opts_list) {
                     goto bad_type;
                 }
                 while (qemu_isspace(*p)) {