summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/arch/i386/firmware/pcbios/e820mangler.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/arch/i386/firmware/pcbios/e820mangler.S b/src/arch/i386/firmware/pcbios/e820mangler.S
index 89030a49e..21d1bb9a5 100644
--- 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