[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Resend][Seabios PATCH] don't boot from un-selected dev
From: |
Gleb Natapov |
Subject: |
Re: [Qemu-devel] [Resend][Seabios PATCH] don't boot from un-selected devices |
Date: |
Wed, 19 Dec 2012 11:32:08 +0200 |
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 <address@hidden>
> ---
> 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.
Re: [Qemu-devel] [Resend][Seabios PATCH] don't boot from un-selected devices, Kevin O'Connor, 2012/12/19