cvs commit: src/sys/boot/i386/libi386 biosdisk.c
John Baldwin
jhb at FreeBSD.org
Wed Jan 21 15:22:31 PST 2004
jhb 2004/01/21 15:22:29 PST
FreeBSD src repository
Modified files:
sys/boot/i386/libi386 biosdisk.c
Log:
If a transfer to or from a floppy disk crosses a 64k boundary, we have to
use a bounce buffer for the actual transfer to avoid crossing a 64k
boundary. To do this, we malloc a buffer twice as big as we need and then
find an aligned block within that buffer to do the transfer. The check
to see which part of the block we use used the wrong variable for part of
the condition meaning that in certain edge cases we would ask the BIOS to
cross a 64k boundary. The BIOS request would then fail resulting in file
transfers that just magically fail in the middle without any apparent
reason. Specifically, my tests for the splitfs boot floppies managed to
trigger this edge case.
MFC after: 1 week
X-MFC-info: along with fixes to libstand filesystems
Revision Changes Path
1.41 +2 -2 src/sys/boot/i386/libi386/biosdisk.c
More information about the cvs-all
mailing list