]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 9 Nov 2009 22:51:01 +0000 (23:51 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 9 Nov 2009 22:51:01 +0000 (23:51 +0100)
* kern/i386/pc/startup.S (grub_biosdisk_get_diskinfo_int13_extensions):
Ignore return status if CF is cleared.

kern/i386/pc/startup.S

index da3624c894d5afabd9c0da21d816dbd73f416887..83f0b4ef8bc3890bc5b038a149fa10be6d6e41a9 100644 (file)
@@ -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