diff options
author | Andy Alex <andy@r-tt.com> | 2014-02-23 23:16:52 +0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2014-02-26 20:01:55 -0800 |
commit | 2702e0bdb70c4b6de530ad2205858154e47f2b33 (patch) | |
tree | 40b9e7784f05be970c9ddb62f21f1b0e2b39a30c | |
parent | 046f19cbffec3516d4f934863820fc242f33da3c (diff) | |
download | syslinux-2702e0bdb70c4b6de530ad2205858154e47f2b33.tar.gz syslinux-2702e0bdb70c4b6de530ad2205858154e47f2b33.tar.xz syslinux-2702e0bdb70c4b6de530ad2205858154e47f2b33.zip |
core, bios: Incorrect detection of EDD in /core/fs/diskio_bios.csyslinux-6.03-pre3
DL register is not set to drive number when detecting EDD for drive,
so detection may fail.
Signed-off-by: Andy Alex <andy at r-tt.com>
-rw-r--r-- | core/fs/diskio_bios.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/core/fs/diskio_bios.c b/core/fs/diskio_bios.c index eba5a176..7feb7fc4 100644 --- a/core/fs/diskio_bios.c +++ b/core/fs/diskio_bios.c @@ -338,6 +338,7 @@ struct disk *bios_disk_init(void *private) /* Get EBIOS support */ ireg.eax.b[1] = 0x41; ireg.ebx.w[0] = 0x55aa; + ireg.edx.b[0] = devno; ireg.eflags.b[0] = 0x3; /* CF set */ __intcall(0x13, &ireg, &oreg); @@ -355,6 +356,7 @@ struct disk *bios_disk_init(void *private) memset(&ireg, 0, sizeof ireg); ireg.eax.b[1] = 0x48; + ireg.edx.b[0] = devno; ireg.ds = SEG(&edd_params); ireg.esi.w[0] = OFFS(&edd_params); __intcall(0x13, &ireg, &oreg); |