Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/i386/stand/lib efiboot: fix to find boot partition ...



details:   https://anonhg.NetBSD.org/src/rev/52200cd296ac
branches:  trunk
changeset: 831293:52200cd296ac
user:      nonaka <nonaka%NetBSD.org@localhost>
date:      Tue Mar 20 10:21:01 2018 +0000

description:
efiboot: fix to find boot partition process.

NetBSD related partitions with no bootme flag set are also candidates
for boot partition.

diffstat:

 sys/arch/i386/stand/lib/biosdisk.c |  28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

diffs (51 lines):

diff -r d778ac7dca67 -r 52200cd296ac sys/arch/i386/stand/lib/biosdisk.c
--- a/sys/arch/i386/stand/lib/biosdisk.c        Tue Mar 20 10:19:33 2018 +0000
+++ b/sys/arch/i386/stand/lib/biosdisk.c        Tue Mar 20 10:21:01 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: biosdisk.c,v 1.47 2018/03/08 10:34:33 nonaka Exp $     */
+/*     $NetBSD: biosdisk.c,v 1.48 2018/03/20 10:21:01 nonaka Exp $     */
 
 /*
  * Copyright (c) 1996, 1998
@@ -802,20 +802,21 @@
                        if (d->part[partition].fstype == FS_UNUSED)
                                continue;
 #ifdef EFIBOOT
-                       if (d->part[partition].attr & GPT_ENT_ATTR_BOOTME) {
-                               switch (d->part[partition].fstype) {
-                               case FS_BSDFFS:
-                               case FS_BSDLFS:
-                               case FS_RAID:
-                               case FS_CCD:
-                               case FS_CGD:
-                               case FS_ISO9660:
-                                       break;
+                       switch (d->part[partition].fstype) {
+                       case FS_BSDFFS:
+                       case FS_BSDLFS:
+                       case FS_RAID:
+                       case FS_CCD:
+                       case FS_CGD:
+                       case FS_ISO9660:
+                               if (d->part[partition].attr & GPT_ENT_ATTR_BOOTME)
+                                       goto found;
+                               candidate = partition;
+                               break;
 
-                               default:
+                       default:
+                               if (d->part[partition].attr & GPT_ENT_ATTR_BOOTME)
                                        candidate = partition;
-                                       continue;
-                               }
                                break;
                        }
 #else
@@ -824,6 +825,7 @@
 #endif
                }
 #ifdef EFIBOOT
+found:
                if (partition == 0 && candidate != 0)
                        partition = candidate;
 #endif



Home | Main Index | Thread Index | Old Index