Live CD problems.

Matthew Dillon dillon at apollo.backplane.com
Mon Jul 23 13:04:53 PDT 2007


    Ok, all the live CD problems should now theoretically be fixed.  I'm
    doing a full nrelease build to test it.

    I found numerous additional bugs while tracking down this one,
    including problems tracking the open count on the device.  This
    typically prevented the CD from being ejected.  /dev/cd0 also had the
    wrong minor number, and the generic disk layer also failed to properly
    track opens when an open failed (which I found when I couldn't
    eject the CD after trying to open the incorrect /dev/cd0 device).

    The main issue was that the CAM layer failed to set the si_iosize_max
    field in the device structure.  This caused the strategy code to
    try to break I/O's down into 0-sized chunks, resulting in an endless
    loop and/or panic.

    NATA's CAM interface also failed to properly set transfer length
    limits based on the DMA transfer limit and instead just used 65535
    unconditionally.  This resulted in accesses via the SCSI device
    (/dev/cd0) potentially making I/O requests that were too large.

						-Matt





More information about the Bugs mailing list