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 (jul...@tfs.com) 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

Reply via email to