From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TnWuR-0006tB-8o for qemu-devel@nongnu.org; Tue, 25 Dec 2012 10:59:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TnWuP-0007pU-U5 for qemu-devel@nongnu.org; Tue, 25 Dec 2012 10:59:15 -0500 Received: from mx1.redhat.com ([209.132.183.28]:25634) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TnWuP-0007pN-MJ for qemu-devel@nongnu.org; Tue, 25 Dec 2012 10:59:13 -0500 Message-ID: <50D9CD48.4030907@redhat.com> Date: Tue, 25 Dec 2012 17:59:04 +0200 From: Ronen Hod MIME-Version: 1.0 References: <1355901730-24350-1-git-send-email-akong@redhat.com> <1355901885-24398-1-git-send-email-akong@redhat.com> <20121219093208.GL11016@redhat.com> In-Reply-To: <20121219093208.GL11016@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Resend][Seabios PATCH] don't boot from un-selected devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gleb Natapov Cc: dallan@redhat.com, seabios@seabios.org, qemu-devel@nongnu.org, alex.williamson@redhat.com, kevin@koconnor.net, Amos Kong On 12/19/2012 11:32 AM, Gleb Natapov wrote: > 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. Another option would be to add a "terminator" symbol, say "T" (I couldn't find a good terminator), so that order=ndT, would mean strict "nd". Ronen. > >> 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 >> --- >> 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. >