summaryrefslogtreecommitdiffstats
path: root/src/arch/i386
diff options
context:
space:
mode:
authorFrediano Ziglio2013-05-14 15:06:25 +0200
committerMichael Brown2013-05-14 15:51:19 +0200
commit9df238a8aa1c6074f98280d9dfa08c4ea7e1ff86 (patch)
tree127013a02d081fc4bd8b1d1f077a298ed78cb7f2 /src/arch/i386
parent[build] Use $(eval) if available (diff)
downloadipxe-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.S4
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