From 1e5fd3f467f236685baeb2b88c32da941e63267f Mon Sep 17 00:00:00 2001
From: Rui Paulo <rpaulo@FreeBSD.org>
Date: Fri, 26 Jun 2009 09:32:31 +0000
Subject: [PATCH] On special systems where the MBR and the GPT are in sync (up
 to the 4th slicei, Apple EFI hardware), the bootloader will fail to recognize
 the GPT if it finds anything else but the EFI partition. Change the check to
 continue detecting the GPT by looking at the EFI partition on the MBR but
 stopping successfuly after finding it.

PR:		kern/134590
Submitted by:	Christoph Langguth <christoph at rosenkeller.org>
Reviewed by:	jhb
MFC after:	2 weeks
Approved by:	re (kib)
---
 sys/boot/i386/libi386/biosdisk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/boot/i386/libi386/biosdisk.c b/sys/boot/i386/libi386/biosdisk.c
index b49d4e6ec855..7e1fa19369d0 100644
--- a/sys/boot/i386/libi386/biosdisk.c
+++ b/sys/boot/i386/libi386/biosdisk.c
@@ -880,7 +880,7 @@ bd_open_gpt(struct open_disk *od, struct i386_devdesc *dev)
     for (i = 0; i < NDOSPART; i++) {
 	if (dp[i].dp_typ == 0xee)
 	    part++;
-	else if (dp[i].dp_typ != 0x00)
+	else if ((part != 1) && (dp[i].dp_typ != 0x00))
 	    return (EINVAL);
     }
     if (part != 1)