VirtualBox

Changeset 95057 in vbox


Ignore:
Timestamp:
May 23, 2022 9:15:10 AM (3 years ago)
Author:
vboxsync
Message:

DevATA: More consistently set ATA_STAT_SEEK on command completion so as to not upset old guests which expect to see it set.

Location:
trunk/src/VBox/Devices/Storage
Files:
2 edited

Legend:

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

    r93411 r95057  
    43814381                Log2(("%s: set multi sector count to %d\n", __FUNCTION__, s->uATARegNSector));
    43824382                s->cMultSectors = s->uATARegNSector;
    4383                 ataR3CmdOK(pCtl, s, 0);
     4383                ataR3CmdOK(pCtl, s, ATA_STAT_SEEK);
    43844384            }
    43854385            ataHCSetIRQ(pDevIns, pCtl, s); /* Shortcut, do not use AIO thread. */
     
    44654465            s->fLBA48 = true;
    44664466            ataR3SetSector(s, s->cTotalSectors - 1);
    4467             ataR3CmdOK(pCtl, s, 0);
     4467            ataR3CmdOK(pCtl, s, ATA_STAT_SEEK);
    44684468            ataHCSetIRQ(pDevIns, pCtl, s); /* Shortcut, do not use AIO thread. */
    44694469            break;
    44704470        case ATA_SEEK: /* Used by the SCO OpenServer. Command is marked as obsolete */
    4471             ataR3CmdOK(pCtl, s, 0);
     4471            ataR3CmdOK(pCtl, s, ATA_STAT_SEEK);
    44724472            ataHCSetIRQ(pDevIns, pCtl, s); /* Shortcut, do not use AIO thread. */
    44734473            break;
     
    44764476                goto abort_cmd;
    44774477            ataR3SetSector(s, RT_MIN(s->cTotalSectors, 1 << 28) - 1);
    4478             ataR3CmdOK(pCtl, s, 0);
     4478            ataR3CmdOK(pCtl, s, ATA_STAT_SEEK);
    44794479            ataHCSetIRQ(pDevIns, pCtl, s); /* Shortcut, do not use AIO thread. */
    44804480            break;
     
    59895989                    {
    59905990                        Assert(iSourceSink == ATAFN_SS_NULL);
    5991                         ataR3CmdOK(pCtl, s, 0);
     5991                        ataR3CmdOK(pCtl, s, ATA_STAT_SEEK);
    59925992                    }
    59935993                    s->iIOBufferEnd = s->cbElementaryTransfer;
  • trunk/src/VBox/Devices/Storage/DevFdc.cpp

    r94649 r95057  
    784784        break;
    785785    case FD_REG_DSR:
     786#if 0
    786787        fdctrl_write_rate(fdctrl, value);
     788#else
     789        fdctrl_write_data(fdctrl, value);
     790#endif
    787791        break;
    788792    case FD_REG_FIFO:
Note: See TracChangeset for help on using the changeset viewer.

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