Patchwork [v2] handle device help before accelerator set up

login
register
mail settings
Submitter Bruce Rogers
Date Aug. 9, 2012, 6:47 p.m.
Message ID <1344538060-25948-1-git-send-email-brogers@suse.com>
Download mbox | patch
Permalink /patch/176215/
State New
Headers show

Comments

Bruce Rogers - Aug. 9, 2012, 6:47 p.m.
A command line device probe using just -device "?" gets processed
after qemu-kvm initializes the accelerator. If /dev/kvm is not
present, the accelerator check will fail (kvm is defaulted to on),
which causes libvirt to not be set up to handle qemu guests.

Moving the device help handling before the accelerator set up allows
the device probe to work in this configuration and libvirt succeeds
in setting up for a qemu hypervisor mode.

Signed-off-by: Bruce Rogers <brogers@suse.com>
---
 vl.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
Blue Swirl - Aug. 9, 2012, 8 p.m.
Thanks, applied.

On Thu, Aug 9, 2012 at 6:47 PM, Bruce Rogers <brogers@suse.com> wrote:
> A command line device probe using just -device "?" gets processed
> after qemu-kvm initializes the accelerator. If /dev/kvm is not
> present, the accelerator check will fail (kvm is defaulted to on),
> which causes libvirt to not be set up to handle qemu guests.
>
> Moving the device help handling before the accelerator set up allows
> the device probe to work in this configuration and libvirt succeeds
> in setting up for a qemu hypervisor mode.
>
> Signed-off-by: Bruce Rogers <brogers@suse.com>
> ---
>  vl.c |    8 +++++---
>  1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index e71cb30..a4a520f 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3345,6 +3345,11 @@ int main(int argc, char **argv, char **envp)
>          ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
>      }
>
> +    if (qemu_opts_foreach(qemu_find_opts("device"), device_help_func, NULL, 0)
> +        != 0) {
> +        exit(0);
> +    }
> +
>      configure_accelerator();
>
>      qemu_init_cpu_loop();
> @@ -3500,9 +3505,6 @@ int main(int argc, char **argv, char **envp)
>      }
>      select_vgahw(vga_model);
>
> -    if (qemu_opts_foreach(qemu_find_opts("device"), device_help_func, NULL, 0) != 0)
> -        exit(0);
> -
>      if (watchdog) {
>          i = select_watchdog(watchdog);
>          if (i > 0)
> --
> 1.7.7
>
>

Patch

diff --git a/vl.c b/vl.c
index e71cb30..a4a520f 100644
--- a/vl.c
+++ b/vl.c
@@ -3345,6 +3345,11 @@  int main(int argc, char **argv, char **envp)
         ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
     }
 
+    if (qemu_opts_foreach(qemu_find_opts("device"), device_help_func, NULL, 0)
+        != 0) {
+        exit(0);
+    }
+
     configure_accelerator();
 
     qemu_init_cpu_loop();
@@ -3500,9 +3505,6 @@  int main(int argc, char **argv, char **envp)
     }
     select_vgahw(vga_model);
 
-    if (qemu_opts_foreach(qemu_find_opts("device"), device_help_func, NULL, 0) != 0)
-        exit(0);
-
     if (watchdog) {
         i = select_watchdog(watchdog);
         if (i > 0)