CVSROOT:        /cvs
Module name:    src
Changes by:     js...@cvs.openbsd.org   2016/09/18 09:13:10

Modified files:
        sys/arch/i386/stand/libsa: biosdev.c 
        sys/arch/amd64/stand/libsa: biosdev.c 

Log message:
Fix a bug in the bounce buffer handling of BIOS disk I/O.

Currently, if a buffer crosses a 64KB boundary, a bounce buffer is
allocated, however it is assumed that this new buffer does not cross the
64KB boundary. In the case of i386 fdboot, it just so happens that (due to
the size of fdboot and heap allocations) UFS gets allocated a 4KB buffer
that crosses a 64KB boundary, then biosd_io() allocates a bounce buffer,
which also crosses a 64KB boundary. At this point the BIOS gets grumpy and
refuses to read from the disk.

Further clean up to come from tom@.

Reply via email to