On Wed, Dec 19, 2012 at 03:24:45PM +0800, Amos Kong wrote: > Current seabios will try to boot from selected devices first, > if they are all failed, seabios will also try to boot from > un-selected devices. > > For example: > @ qemu-kvm -boot order=n,menu=on ... > > Guest will boot from network first, if it's failed, guest will try to > boot from other un-selected devices (floppy, cdrom, disk) one by one. > > Sometimes, user don't want to boot from some devices. This patch changes And sometimes he want. The patch changes behaviour unconditionally. New behaviour should be user selectable. Something line -boot order=strict on qemu command line.
> seabios to boot only from selected devices. > > If user choose first boot device from menu, then seabios will try all > the devices, even some of them are not selected. > > Signed-off-by: Amos Kong <ak...@redhat.com> > --- > Resend for CCing seabios maillist. > --- > src/boot.c | 13 ++++++++----- > 1 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/src/boot.c b/src/boot.c > index 3ca7960..ee810ac 100644 > --- a/src/boot.c > +++ b/src/boot.c > @@ -424,6 +424,10 @@ interactive_bootmenu(void) > maxmenu++; > printf("%d. %s\n", maxmenu > , strtcpy(desc, pos->description, ARRAY_SIZE(desc))); > + /* If user chooses first boot device from menu, we will treat > + all the devices as selected. */ > + if (pos->priority == DEFAULT_PRIO) > + pos->priority = DEFAULT_PRIO - 1; > pos = pos->next; > } > > @@ -490,7 +494,10 @@ boot_prep(void) > > // Map drives and populate BEV list > struct bootentry_s *pos = BootList; > - while (pos) { > + > + /* The priority of un-selected device is not changed, > + we only boot from user selected devices. */ > + while (pos && pos->priority != DEFAULT_PRIO) { > switch (pos->type) { > case IPL_TYPE_BCV: > call_bcv(pos->vector.seg, pos->vector.offset); > @@ -513,10 +520,6 @@ boot_prep(void) > } > pos = pos->next; > } > - > - // If nothing added a floppy/hd boot - add it manually. > - add_bev(IPL_TYPE_FLOPPY, 0); > - add_bev(IPL_TYPE_HARDDISK, 0); > } > > > -- > 1.7.1 -- Gleb.