Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jan 2004 15:22:29 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/boot/i386/libi386 biosdisk.c
Message-ID:  <200401212322.i0LNMTIQ097693@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401212322.i0LNMTIQ097693>