Blame SOURCES/efibootmgr-0.5.4-Work-around-broken-Apple-firmware.patch

8dd33d
From 6edc3ed5479b575f87eb51e335957b05fdd04fe8 Mon Sep 17 00:00:00 2001
8dd33d
From: Fedora Ninjas <pjones@fedoraproject.org>
8dd33d
Date: Wed, 28 Nov 2012 16:49:18 -0500
8dd33d
Subject: [PATCH 1/5] Work around broken Apple firmware
8dd33d
8dd33d
Alex Murray found that Apple's firmware sets an invalid EFI attribute on
8dd33d
BootCurrent, which newer versions of the kernel then reject. This patch
8dd33d
from him simply masks off the extraneous bit.
8dd33d
---
8dd33d
 src/lib/efivars_sysfs.c | 4 ++++
8dd33d
 1 file changed, 4 insertions(+)
8dd33d
8dd33d
diff --git a/src/lib/efivars_sysfs.c b/src/lib/efivars_sysfs.c
8dd33d
index 182c70f..ea87325 100644
8dd33d
--- a/src/lib/efivars_sysfs.c
8dd33d
+++ b/src/lib/efivars_sysfs.c
8dd33d
@@ -55,6 +55,10 @@ sysfs_read_variable(const char *name, efi_variable_t *var)
8dd33d
 		return EFI_INVALID_PARAMETER;
8dd33d
 	}
8dd33d
 	close(fd);
8dd33d
+	/* latest apple firmware sets high bit which appears invalid
8dd33d
+	   to the linux kernel if we write it back so lets zero it out
8dd33d
+	   if it is set since it would be invalid to set it anyway */
8dd33d
+	var->Attributes = var->Attributes & ~(1 << 31);
8dd33d
 	return var->Status;
8dd33d
 }
8dd33d
 
8dd33d
-- 
8dd33d
1.8.0
8dd33d