[syslinux] [1/1] [gfxboot] align buffer used to read data from disk to a 512 byte boundary

Christophe Fergeau cfergeau at mandriva.com
Thu Apr 30 06:38:37 PDT 2009


The COM API provides a function to read from disk (int 22h, AX=07h)
which needs a destination buffer aligned on a 512 byte boundary. gfxboot
uses this function but doesn't ensure its data buffer is properly
aligned. This leads to failures on a few machines (HP Pavillion dv5):

gfxboot:
isolinux: Disk error 09, AX = 424F, drive FE

https://qa.mandriva.com/show_bug.cgi?id=48814 has a bit more details.
This patch just makes sure the buffer used to read from disk is properly
aligned, this fixes the boot failures on the aforementioned machines.

Signed-off-by: Christophe Fergeau <cfergeau at mandriva.com>
---
 modules/gfxboot.asm |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/modules/gfxboot.asm b/modules/gfxboot.asm
index e3aed13..2c3f809 100644
--- a/modules/gfxboot.asm
+++ b/modules/gfxboot.asm
@@ -871,6 +871,8 @@ drivenumber         db 0
 sectorshift            db 0
 sectorsize             dw 0
 trackbufsize           equ 16384
+align                  512 ; must be 512 byte aligned because it will 
be passed
+                           ; to int 22h, AX=07h
 trackbuf               times trackbufsize db 0
 BufSafe                        dw 0
 file_length            dd 0
-- 
1.6.2.4




More information about the Syslinux mailing list