VirtualBox

Changeset 66057 in vbox


Ignore:
Timestamp:
Mar 12, 2017 10:44:49 PM (8 years ago)
Author:
vboxsync
Message:

Devices/Storage/DevATA: Fix booting BeOS from a physical disc with passthrough enabled (bugref:8794)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DevATA.cpp

    r66006 r66057  
    21612161        if (s->uTxDir == PDMMEDIATXDIR_FROM_DEVICE)
    21622162        {
    2163             Assert(cbTransfer <= s->cbAtapiPassthroughTransfer);
    21642163            /*
    21652164             * Reply with the same amount of data as the real drive
    21662165             * but only if the command wasn't split.
    21672166             */
    2168 # if 0  /// @todo This destroys commands where cbTotalTransfer > cbIOBuffer
    2169             if (s->cbElementaryTransfer < s->cbIOBuffer)
     2167            if (s->cbAtapiPassthroughTransfer < s->cbIOBuffer)
    21702168                s->cbTotalTransfer = cbTransfer;
    2171 # endif
    21722169
    21732170            if (   s->aATAPICmd[0] == SCSI_INQUIRY
     
    21902187         * transfer size. But the I/O buffer size limits what can actually be
    21912188         * done in one transfer, so set the actual value of the buffer end. */
    2192         s->cbElementaryTransfer = cbTransfer;
    2193         if (cbTransfer >= s->cbAtapiPassthroughTransfer)
     2189        Assert(cbTransfer <= s->cbAtapiPassthroughTransfer);
     2190        s->cbElementaryTransfer        = cbTransfer;
     2191        s->cbAtapiPassthroughTransfer -= cbTransfer;
     2192        if (!s->cbAtapiPassthroughTransfer)
    21942193        {
    21952194            s->iSourceSink = ATAFN_SS_NULL;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy