From: Amos Kong <akong@redhat.com>
To: kevin@koconnor.net
Cc: alex.williamson@redhat.com, Amos Kong <akong@redhat.com>,
dallan@redhat.com, qemu-devel@nongnu.org, gleb@redhat.com
Subject: [Qemu-devel] [PATCH] don't boot from un-selected devices
Date: Wed, 19 Dec 2012 15:22:10 +0800 [thread overview]
Message-ID: <1355901730-24350-1-git-send-email-akong@redhat.com> (raw)
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
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 <akong@redhat.com>
---
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
next reply other threads:[~2012-12-19 7:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-19 7:22 Amos Kong [this message]
2012-12-19 7:24 ` [Qemu-devel] [Resend][Seabios PATCH] don't boot from un-selected devices Amos Kong
2012-12-19 7:38 ` Gerd Hoffmann
2012-12-19 8:12 ` Amos Kong
2012-12-19 9:32 ` Gleb Natapov
2012-12-25 3:58 ` Amos Kong
2012-12-25 6:37 ` Gleb Natapov
2012-12-25 10:37 ` Amos Kong
2012-12-26 0:55 ` [Qemu-devel] [SeaBIOS PATCH v2] boot: support strict boot and make it configurable Amos Kong
2013-01-09 4:00 ` Kevin O'Connor
2013-01-09 5:03 ` Amos Kong
2013-01-12 22:01 ` Kevin O'Connor
2013-01-09 5:17 ` [Qemu-devel] [SeaBIOS PATCH v3] boot: add a new type to halt booting Amos Kong
2012-12-25 15:59 ` [Qemu-devel] [Resend][Seabios PATCH] don't boot from un-selected devices Ronen Hod
2012-12-25 17:15 ` Gleb Natapov
2012-12-19 16:39 ` Kevin O'Connor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1355901730-24350-1-git-send-email-akong@redhat.com \
--to=akong@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=dallan@redhat.com \
--cc=gleb@redhat.com \
--cc=kevin@koconnor.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).