From: Vladimir 'phcoder' Serbinenko Date: Mon, 9 Nov 2009 22:51:01 +0000 (+0100) Subject: 2009-11-09 Vladimir Serbinenko X-Git-Tag: 1.98~259^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=81faaf6c56735499e7e3ab3236103fd17c25bad2;p=thirdparty%2Fgrub.git 2009-11-09 Vladimir Serbinenko * kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions): Ignore return status if CF is cleared. --- diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S index da3624c89..83f0b4ef8 100644 --- a/kern/i386/pc/startup.S +++ b/kern/i386/pc/startup.S @@ -776,6 +776,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