On 01/27/2015 03:51 AM, Gonglei wrote: > On 2015/1/27 7:52, dval...@suse.de wrote: > >> From: Dinar Valeev <dval...@suse.com> >> >> on sPAPR we need to update boot_order in MachineState in case it >> got changed on reset. >> >> Signed-off-by: Dinar Valeev <dval...@suse.com> >> --- >> bootdevice.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/bootdevice.c b/bootdevice.c >> index 5914417..4f11a06 100644 >> --- a/bootdevice.c >> +++ b/bootdevice.c >> @@ -26,6 +26,7 @@ >> #include "qapi/visitor.h" >> #include "qemu/error-report.h" >> #include "hw/hw.h" >> +#include "hw/boards.h" >> >> typedef struct FWBootEntry FWBootEntry; >> >> @@ -50,6 +51,8 @@ void qemu_register_boot_set(QEMUBootSetHandler *func, void >> *opaque) >> void qemu_boot_set(const char *boot_order, Error **errp) >> { >> Error *local_err = NULL; >> + MachineState *machine = MACHINE(qdev_get_machine()); >> + machine->boot_order = boot_order; >> >> if (!boot_set_handler) { >> error_setg(errp, "no function defined to set boot device list for" > > Have you registered boot set handler on ppc/sPAPR platform by calling > qemu_register_boot_set()? Otherwise qemu_boot_set function > will return error. No, I set boot_order on each machine reset. My tests are showing it works without an error. Previous patch was using qemu_register_boot_set, but Alexender Graf, suggested me to use MachineState and simply update on each guest reset.
> > Regards, > -Gonglei >