2009-12-25 Vladimir Serbinenko <phcoder@gmail.com>

* kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions):
	Ignore return status if CF is cleared.
	(grub_biosdisk_get_diskinfo_standard): Likewise.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2009-12-25 23:01:32 +01:00
commit db9433999c
2 changed files with 16 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2009-12-25 Vladimir Serbinenko <phcoder@gmail.com>
* kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions):
Ignore return status if CF is cleared.
(grub_biosdisk_get_diskinfo_standard): Likewise.
2009-12-25 Robert Millan <rmh.grub@aybabtu.com>
* term/i386/pc/at_keyboard.c

View File

@ -764,6 +764,11 @@ FUNCTION(grub_biosdisk_get_diskinfo_int13_extensions)
movw %cx, %ax
movw %bx, %ds
int $0x13 /* do the operation */
jc noclean
/* Clean return value if carry isn't set to workaround
some buggy BIOSes. */
xor %ax, %ax
noclean:
movb %ah, %bl /* save return value in %bl */
/* back to protected mode */
DATA32 call real_to_prot
@ -807,6 +812,11 @@ FUNCTION(grub_biosdisk_get_diskinfo_standard)
.code16
movb $0x8, %ah
int $0x13 /* do the operation */
jc noclean2
/* Clean return value if carry isn't set to workaround
some buggy BIOSes. */
xor %ax, %ax
noclean2:
/* check if successful */
testb %ah, %ah
jnz 1f