2008-03-30 Pavel Roskin <proski@gnu.org>

* kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
	GDT.  This is more robust, as %ds can change.
	(grub_biosdisk_rw_int13_extensions): Don't clear %ds before
	calling real_to_prot().
	(grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
This commit is contained in:
proski 2008-03-30 04:13:47 +00:00
parent 80a3e68b59
commit 17c74c21f0
2 changed files with 9 additions and 7 deletions

View File

@ -1,3 +1,11 @@
2008-03-30 Pavel Roskin <proski@gnu.org>
* kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
GDT. This is more robust, as %ds can change.
(grub_biosdisk_rw_int13_extensions): Don't clear %ds before
calling real_to_prot().
(grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
2008-03-28 Pavel Roskin <proski@gnu.org>
* kern/i386/pc/startup.S: Assert that uncompressed functions

View File

@ -291,7 +291,7 @@ real_to_prot:
cli
/* load the GDT register */
DATA32 ADDR32 lgdt gdtdesc
DATA32 ADDR32 lgdt %cs:gdtdesc
/* turn on protected mode */
movl %cr0, %eax
@ -649,9 +649,6 @@ FUNCTION(grub_biosdisk_rw_int13_extensions)
movw %cx, %ds
int $0x13 /* do the operation */
movb %ah, %dl /* save return value */
/* clear the data segment */
xorw %ax, %ax
movw %ax, %ds
/* back to protected mode */
DATA32 call real_to_prot
.code32
@ -824,9 +821,6 @@ FUNCTION(grub_biosdisk_get_diskinfo_int13_extensions)
movw %bx, %ds
int $0x13 /* do the operation */
movb %ah, %bl /* save return value in %bl */
/* clear the data segment */
xorw %ax, %ax
movw %ax, %ds
/* back to protected mode */
DATA32 call real_to_prot
.code32