http://git.etherboot.org
/
people
/
xl0
/
gpxe.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c399e88
)
Check to see if we've reached the end of the map before attempting to
author
Michael Brown
<mcb30@etherboot.org>
Thu, 31 Aug 2006 13:25:45 +0000
(13:25 +0000)
committer
Michael Brown
<mcb30@etherboot.org>
Thu, 31 Aug 2006 13:25:45 +0000
(13:25 +0000)
skip past an empty region, otherwise we end up generating an infinitely
long e820 map. (Yes, there *are* real systems that provide e820 maps
with a zero-length region at the end...)
src/arch/i386/firmware/pcbios/e820mangler.S
patch
|
blob
|
history
diff --git
a/src/arch/i386/firmware/pcbios/e820mangler.S
b/src/arch/i386/firmware/pcbios/e820mangler.S
index
89030a4
..
21d1bb9
100644
(file)
--- a/
src/arch/i386/firmware/pcbios/e820mangler.S
+++ b/
src/arch/i386/firmware/pcbios/e820mangler.S
@@
-361,7
+361,12
@@
int15_e820:
pushl %edx
call split_e820
pushfw
+ /* Skip empty region checking if we've reached the end of the
+ * map or hit an error, to avoid a potential endless loop.
+ */
jc 1f
+ testl %ebx, %ebx
+ jz 1f
/* Check for an empty region */
pushl %eax
movl %es:8(%di), %eax