Module Name: src
Committed By: erh
Date: Sat Jul 19 14:50:21 UTC 2014
Modified Files:
src/sys/arch/i386/stand/lib: bios_disk.S
Log Message:
Fix bootxx_* and boot on machines where the bios sets high bits of %eax on
success.
To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/i386/stand/lib/bios_disk.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/i386/stand/lib/bios_disk.S
diff -u src/sys/arch/i386/stand/lib/bios_disk.S:1.21 src/sys/arch/i386/stand/lib/bios_disk.S:1.22
--- src/sys/arch/i386/stand/lib/bios_disk.S:1.21 Thu Jun 16 13:27:59 2011
+++ src/sys/arch/i386/stand/lib/bios_disk.S Sat Jul 19 14:50:21 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: bios_disk.S,v 1.21 2011/06/16 13:27:59 joerg Exp $ */
+/* $NetBSD: bios_disk.S,v 1.22 2014/07/19 14:50:21 erh Exp $ */
/*
* Ported to boot 386BSD by Julian Elischer ([email protected]) Sept 1992
@@ -133,6 +133,9 @@ ENTRY(biosdisk_read)
calll _C_LABEL(real_to_prot) # back to protected mode
.code32
+ andl $0x0000FFFF, %eax # Some bioses set high bits in %eax
+ # on success, interfering with our
+ # return value. Clear those out.
movl %eax, 28(%esp)
popa