VirtualBox

Changeset 56676 in vbox for trunk/src/VBox/Devices/Storage


Ignore:
Timestamp:
Jun 29, 2015 4:59:20 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
101318
Message:

Storage/AHCI: Fix assertion which can trigger erroneously after r100611 in rare circumstances. Also make it only log the assertion in release builds but don't abort the VM

File:
1 edited

Legend:

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

    r56658 r56676  
    67626762        if (pAhciReq->cmdFis[AHCI_CMDFIS_BITS] & AHCI_CMDFIS_C)
    67636763        {
    6764             AssertReleaseMsg(ASMAtomicReadU32(&pAhciPort->cTasksActive) < AHCI_NR_COMMAND_SLOTS,
    6765                              ("There are more than 32 requests active"));
     6764            /*
     6765             * It is possible that the request counter can get one higher than the maximum because
     6766             * the request counter is decremented after the guest was notified about the completed
     6767             * request (see @bugref{7859}). If the completing thread is preempted in between the
     6768             * guest might already issue another request before the request counter is decremented
     6769             * which would trigger the following assertion incorrectly in the past.
     6770             */
     6771            AssertLogRelMsg(ASMAtomicReadU32(&pAhciPort->cTasksActive) <= AHCI_NR_COMMAND_SLOTS,
     6772                            ("AHCI#%uP%u: There are more than %u (+1) requests active",
     6773                             pAhciPort->CTX_SUFF(pDevIns)->iInstance, pAhciPort->iLUN,
     6774                             AHCI_NR_COMMAND_SLOTS));
    67666775            ASMAtomicIncU32(&pAhciPort->cTasksActive);
    67676776        }
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