diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-09-06 14:30:10 +0100 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-09-06 14:30:10 +0100 |
commit | 36b5e859f163db4c19829d78c2ec89bc17574286 (patch) | |
tree | 8dc4c249a3459476a5bbbd9469e7940facacdf38 | |
parent | 57556d8f612128679464667ce124ddc611795db2 (diff) | |
parent | 29ffc413a82b07fee59e7efcec15c66db66d29fe (diff) | |
download | syslinux-36b5e859f163db4c19829d78c2ec89bc17574286.tar.gz |
Merge commit 'syslinux-3.52-pre8' into gpxe-support
Notice: this object is not reachable from any branch.
syslinux-3.60-pre3Notice: this object is not reachable from any branch.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | memdisk/memdisk.asm | 15 |
2 files changed, 9 insertions, 7 deletions
@@ -28,6 +28,7 @@ Changes in 3.52: Unix standard style, with "$1$" prefixes.) * pcitest.c32: now functions as a full "lspci". Thanks to Erwan Velu for this work. + * MEMDISK: Make EDD actually work. Changes in 3.51: * EXTLINUX: Fix failure to find the configuration file. diff --git a/memdisk/memdisk.asm b/memdisk/memdisk.asm index fc46e844..a1713802 100644 --- a/memdisk/memdisk.asm +++ b/memdisk/memdisk.asm @@ -464,10 +464,10 @@ edd_setup_regs: cmp dword [es:si+4],-1 je .linear_address - movzx esi,word [es:si+4] ; Offset + movzx ebx,word [es:si+4] ; Offset movzx edi,word [es:si+6] ; Segment shl edi,4 - add esi,edi + add ebx,edi jmp .got_address .linear_address: @@ -480,23 +480,24 @@ edd_setup_regs: ; no really better code available jne .error - mov esi,[es:si+16] + mov ebx,[es:si+16] .got_address: cmp dword [es:si+12],0 ; LBA too large? jne .overrun movzx ecx, word [es:si+2] ; Sectors to transfer - mov edi,[es:si+8] ; Starting sector - mov eax,edi + mov esi,[es:si+8] ; Starting sector + mov eax,esi add eax,ecx jc .overrun cmp eax,[DiskSize] ja .overrun shl ecx,SECTORSIZE_LG2-2 ; Convert to dwords - shl edi,SECTORSIZE_LG2 ; Convert to an offset - add edi,[DiskBuf] + shl esi,SECTORSIZE_LG2 ; Convert to an offset + add esi,[DiskBuf] + mov edi,ebx pop es ret |