qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 3/3] nvram: fw_cfg: Fix -boot options in nvra


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v3 3/3] nvram: fw_cfg: Fix -boot options in nvram/fw_cfg
Date: Thu, 15 May 2014 20:03:23 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux)

Peter Crosthwaite <address@hidden> writes:

> Multiple -boot options with the same ID are merged.  All but the
> one without an ID are to be silently ignored.
>
> In other places, we query boot options with qemu_get_boot_opts().
> This is correct.
>
> In this instance, we instead query whatever options come first in the
> list.  This is wrong. When the -boot processed first happens to
> have an ID, options are taken from that ID, and the ones specified
> without ID are silently ignored.
>
> Use qemu_get_boot_opts() to fix these bugs.
>
> This change is similar to and based on 36ad0e9.
>
> We also take to opportunity to remove the now unneeded null boot-opts
> conditional, removing a level of indentation on usage code.
>
> Signed-off-by: Peter Crosthwaite <address@hidden>
> ---
> changed from v2:
> Taken more commit message from 36ad0e9 (Markus Review)
>
>  hw/nvram/fw_cfg.c | 36 ++++++++++++++++--------------------
>  1 file changed, 16 insertions(+), 20 deletions(-)
>
> diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
> index 282341a..8537669 100644
> --- a/hw/nvram/fw_cfg.c
> +++ b/hw/nvram/fw_cfg.c
> @@ -125,18 +125,16 @@ static void fw_cfg_bootsplash(FWCfgState *s)
>      const char *temp;
>  
>      /* get user configuration */
> -    QemuOptsList *plist = qemu_find_opts("boot-opts");
> -    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
> -    if (opts != NULL) {
> -        temp = qemu_opt_get(opts, "splash");
> -        if (temp != NULL) {
> -            boot_splash_filename = temp;
> -        }
> -        temp = qemu_opt_get(opts, "splash-time");
> -        if (temp != NULL) {
> -            p = (char *)temp;
> -            boot_splash_time = strtol(p, (char **)&p, 10);
> -        }
> +    QemuOpts *opts = qemu_get_boot_opts();
> +
> +    temp = qemu_opt_get(opts, "splash");
> +    if (temp != NULL) {
> +        boot_splash_filename = temp;
> +    }
> +    temp = qemu_opt_get(opts, "splash-time");
> +    if (temp != NULL) {
> +        p = (char *)temp;
> +        boot_splash_time = strtol(p, (char **)&p, 10);
>      }
>  
>      /* insert splash time if user configurated */
> @@ -191,14 +189,12 @@ static void fw_cfg_reboot(FWCfgState *s)
>      const char *temp;
>  
>      /* get user configuration */
> -    QemuOptsList *plist = qemu_find_opts("boot-opts");
> -    QemuOpts *opts = QTAILQ_FIRST(&plist->head);
> -    if (opts != NULL) {
> -        temp = qemu_opt_get(opts, "reboot-timeout");
> -        if (temp != NULL) {
> -            p = (char *)temp;
> -            reboot_timeout = strtol(p, (char **)&p, 10);
> -        }
> +    QemuOpts *opts = qemu_get_boot_opts();
> +
> +    temp = qemu_opt_get(opts, "reboot-timeout");
> +    if (temp != NULL) {
> +        p = (char *)temp;
> +        reboot_timeout = strtol(p, (char **)&p, 10);
>      }
>      /* validate the input */
>      if (reboot_timeout > 0xffff) {

I'd appreciate a follow-up patch making "splash-time" and
"reboot-timeout" QEMU_OPT_NUMBER, gotten with qemu_opt_number().  But
it's not required to get this one in.



reply via email to

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