Revision: 66
http://svn.sourceforge.net/mactel-linux/?rev=66&view=rev
Author: huceke
Date: 2006-11-27 14:25:24 -0800 (Mon, 27 Nov 2006)
Log Message:
-----------
Add missing patch for efi boot
Added Paths:
-----------
trunk/kernel/mactel-patches-2.6.18/efi_e820_all_mapped_fix.patch
Added: trunk/kernel/mactel-patches-2.6.18/efi_e820_all_mapped_fix.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.18/efi_e820_all_mapped_fix.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.18/efi_e820_all_mapped_fix.patch 2006-11-27 22:25:24 UTC (rev 66)
@@ -0,0 +1,48 @@
+--- a/arch/i386/kernel/setup.c 2006-06-19 09:12:09.000000000 +0200
++++ b/arch/i386/kernel/setup.c 2006-06-19 09:12:24.000000000 +0200
+@@ -975,24 +975,28 @@
+ u64 start = s;
+ u64 end = e;
+ int i;
+- for (i = 0; i < e820.nr_map; i++) {
+- struct e820entry *ei = &e820.map[i];
+- if (type && ei->type != type)
+- continue;
+- /* is the region (part) in overlap with the current region ?*/
+- if (ei->addr >= end || ei->addr + ei->size <= start)
+- continue;
+- /* if the region is at the beginning of <start,end> we move
+- * start to the end of the region since it's ok until there
+- */
+- if (ei->addr <= start)
+- start = ei->addr + ei->size;
+- /* if start is now at or beyond end, we're done, full
+- * coverage */
+- if (start >= end)
+- return 1; /* we're done */
++ if(!efi_enabled) {
++ for (i = 0; i < e820.nr_map; i++) {
++ struct e820entry *ei = &e820.map[i];
++ if (type && ei->type != type)
++ continue;
++ /* is the region (part) in overlap with the current region ?*/
++ if (ei->addr >= end || ei->addr + ei->size <= start)
++ continue;
++ /* if the region is at the beginning of <start,end> we move
++ * start to the end of the region since it's ok until there
++ */
++ if (ei->addr <= start)
++ start = ei->addr + ei->size;
++ /* if start is now at or beyond end, we're done, full
++ * coverage */
++ if (start >= end)
++ return 1; /* we're done */
++ }
++ return 0;
++ } else {
++ return 1;
+ }
+- return 0;
+ }
+
+ /*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|