diff options
| author | Frediano Ziglio | 2013-05-14 15:06:25 +0200 |
|---|---|---|
| committer | Michael Brown | 2013-05-14 15:51:19 +0200 |
| commit | 9df238a8aa1c6074f98280d9dfa08c4ea7e1ff86 (patch) | |
| tree | 127013a02d081fc4bd8b1d1f077a298ed78cb7f2 /src/arch/i386 | |
| parent | [build] Use $(eval) if available (diff) | |
| download | ipxe-9df238a8aa1c6074f98280d9dfa08c4ea7e1ff86.tar.gz ipxe-9df238a8aa1c6074f98280d9dfa08c4ea7e1ff86.tar.xz ipxe-9df238a8aa1c6074f98280d9dfa08c4ea7e1ff86.zip | |
[romprefix] Fix incorrect pointer offset in undiloader.S
Commit 2422647 ("[prefix] Allow prefix to specify an arbitrary maximum
address for relocation") introduced a regression into the UNDI ROM
loader by preserving an extra register on the stack without modifying
the %sp-relative addresses used in the routine.
Fix by correcting the %sp-relative addresses to allow for the extra
preserved variable.
Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386')
| -rw-r--r-- | src/arch/i386/prefix/undiloader.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/i386/prefix/undiloader.S b/src/arch/i386/prefix/undiloader.S index ccdd816e6..74bb59041 100644 --- a/src/arch/i386/prefix/undiloader.S +++ b/src/arch/i386/prefix/undiloader.S @@ -23,8 +23,8 @@ undiloader: popw %ds /* UNDI loader parameter structure address into %es:%di */ movw %sp, %bx - movw %ss:18(%bx), %di - movw %ss:20(%bx), %es + movw %ss:22(%bx), %di + movw %ss:24(%bx), %es /* Install to specified real-mode addresses */ pushw %di movw %es:12(%di), %bx |
