From: Frediano Ziglio Date: Tue, 14 May 2013 13:06:25 +0000 (+0100) Subject: [romprefix] Fix incorrect pointer offset in undiloader.S X-Git-Tag: v1.20.1~1509 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9df238a8aa1c6074f98280d9dfa08c4ea7e1ff86;p=thirdparty%2Fipxe.git [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 Signed-off-by: Michael Brown --- 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