qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v6 07/27] vl.c: add setter/getter functions for


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH v6 07/27] vl.c: add setter/getter functions for bootindex property
Date: Wed, 03 Sep 2014 10:20:29 +0200

  Hi,

> +void set_bootindex(int32_t *bootindex, Visitor *v,
> > +                   const char *name, Error **errp)
> > +{
> > +    int32_t boot_index;
> > +    Error *local_err = NULL;
> > +
> > +    visit_type_int32(v, &boot_index, name, &local_err);
> > +
> > +    if (local_err == NULL) {
> > +        /* check the bootindex existes or not in fw_boot_order list  */
> > +        check_boot_index(boot_index, &local_err);
> > +    }
> > +
> > +    if (local_err) {
> > +        error_propagate(errp, local_err);
> > +        return;
> > +    }
> > +    /* change bootindex to a new one */
> > +    *bootindex = boot_index;
> > +}
> > +
> 
> In this version, I just change devices' bootindex value, but not update 
> fw_boot_order
> immediately. When we reboot the vm, we will call add_boot_device_path to 
> update
> fw_boot_order list. Do you think it is a good method? This method will cause 
> a problem
> that when we want set a existed bootindex which has been changed, we will get 
> failure.
> Only after vm rebooting, we can set the same bootindex again.

Good point.  check_boot_index() doing the verification against stale
data is pointless and may even throw an error in cases where it should
not.

I guess we should add a add_boot_device_path() call to the
${device}_set_bootindex functions.  Which also means we don't need to do
it on reset (patch #6 can be dropped).  And I think we can also drop the
add_boot_device_path() calls from ${device}_realize then.

cheers,
  Gerd





reply via email to

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