Recently a patch by HPA was added to the elflink branch, "isolinux: Clear upper half of EDX before using..." http://git.zytor.com/?p=syslinux/syslinux.git;a=commit;h=870b84dd8714d dfccc9288025331423efa6d76b7 The patch was then applied to the firmware branch too. The patch solves an issue introduced by a prior commit "isolinux: Update LBA in getlinsec loop". Since the original problematic commit was also originally applied to the 4.xx branch http://git.zytor.com/?p=syslinux/syslinux.git;a=commit;h=cb015497a4e43 3ba81a47b28790b325807185617 and being 4.xx still more stable / predictable and more feature-complete than 6.xx for BIOS systems, I'd like to kindly request for the patch to be applied to the 4.xx branch too. TIA, Ady.
Geert Stappers
2013-Dec-12 05:55 UTC
[syslinux] [syslinux:master] isolinux: Clear upper half of EDX before using
Commit-ID: 88d17d136c21b8afb7d27e091cbb1f757ded80df Gitweb: http://www.syslinux.org/commit/88d17d136c21b8afb7d27e091cbb1f757ded80df Author: H. Peter Anvin <hpa at zytor.com> AuthorDate: Tue, 26 Nov 2013 09:58:17 -0800 Committer: H. Peter Anvin <hpa at zytor.com> CommitDate: Wed, 11 Dec 2013 18:04:04 -0800 isolinux: Clear upper half of EDX before using In checkin: cb015497a4e4 isolinux: Update LBA in getlinsec loop ... we use EDX as a sector count, but the sector count is actually in DX, and the upper half of EDX is uninitialized. If the BIOS enters with a nonzero value in the upper half of EDX, this breaks horribly. At least one set of BIOSes has been identified where if the LBA > 64K then the upper half of EDX will be nonzero. Reported-by: Carl Duff <cdrw2400 at gmail.com> Reported-by: Philip M?ller <philm at manjaro.org> Tested-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar> Signed-off-by: H. Peter Anvin <hpa at zytor.com> --- core/isolinux.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/isolinux.asm b/core/isolinux.asm index db6d2d4..dd0fa89 100644 --- a/core/isolinux.asm +++ b/core/isolinux.asm @@ -430,7 +430,7 @@ MaxLMA equ 384*1024 ; Reasonable limit (384K) call getlinsec pop eax pop cx - mov dx,cx + movzx edx,cx pop bp pop bx _______________________________________________ Syslinux-commits mailing list Syslinux-commits at zytor.com http://www.zytor.com/mailman/listinfo/syslinux-commits Groeten Geert Stappers -- Leven en laten leven