[syslinux:master] memdisk: Fix INT 0x13, AH==0x15 disk drive probe

syslinux-bot for Shao Miller shao.miller at yrdsb.edu.on.ca
Tue Jan 25 17:00:09 PST 2011


Commit-ID:  f76c5d0d0ef296e6b5b942194137d6da593fa653
Gitweb:     http://syslinux.zytor.com/commit/f76c5d0d0ef296e6b5b942194137d6da593fa653
Author:     Shao Miller <shao.miller at yrdsb.edu.on.ca>
AuthorDate: Tue, 25 Jan 2011 17:16:47 -0500
Committer:  Shao Miller <shao.miller at yrdsb.edu.on.ca>
CommitDate: Tue, 25 Jan 2011 17:16:47 -0500

memdisk: Fix INT 0x13, AH==0x15 disk drive probe

The function might return CF==0 ("success"), but could
include AH==0 ("no such drive").  This is the case on
at least a number of Dell models.  Now we check AH, too.

Signed-off-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>


---
 memdisk/dskprobe.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/memdisk/dskprobe.c b/memdisk/dskprobe.c
index 8c2f27b..84400a8 100644
--- a/memdisk/dskprobe.c
+++ b/memdisk/dskprobe.c
@@ -72,7 +72,7 @@ static int probe_int13h_15h(uint8_t drive, com32sys_t * regs)
 
     memset(regs, 0, sizeof *regs);
     probe_any(0x15, drive, regs);
-    present = !(regs->eflags.l & 1);
+    present = !(regs->eflags.l & 1) && regs->eax.b[1];
     dskprobe_printf("  AH15: CF%d AH%02x\n", regs->eflags.l & 1,
 		    regs->eax.b[1]);
     return present;



More information about the Syslinux-commits mailing list