~ubuntu-branches/ubuntu/vivid/virtualbox/vivid

« back to all changes in this revision

Viewing changes to src/VBox/Devices/Storage/DevAHCI.cpp

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2012-06-21 12:31:17 UTC
  • mfrom: (3.1.17 sid)
  • Revision ID: package-import@ubuntu.com-20120621123117-xo4y7f94ofy9p2hp
Tags: 4.1.18-dfsg-1
* New upstream release.
  - Fixes host freezes with 64-bit guests on 32-bit hosts. (LP: #1012627)
  - Fixes odd permissions of files in shared folders. (LP: #1013368)
* Drop 37-fix-unregister-netdevice.patch, fixed upstream.
* Compress orig tarball and binary packages with xz.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6125
6125
                               &pAhciPortTaskState->cmdHdr, sizeof(CmdHdr));
6126
6126
        }
6127
6127
 
6128
 
        /* Add the task to the cache. */
6129
 
        ASMAtomicWritePtr(&pAhciPort->aCachedTasks[pAhciPortTaskState->uTag], pAhciPortTaskState);
6130
6128
        ASMAtomicDecU32(&pAhciPort->cTasksActive);
6131
6129
 
6132
6130
        if (!fRedo)
6623
6621
                pAhciPortTaskState = (PAHCIPORTTASKSTATE)RTMemAllocZ(sizeof(AHCIPORTTASKSTATE));
6624
6622
                AssertMsg(pAhciPortTaskState, ("%s: Cannot allocate task state memory!\n"));
6625
6623
                pAhciPortTaskState->enmTxState = AHCITXSTATE_FREE;
 
6624
                pAhciPort->aCachedTasks[idx] = pAhciPortTaskState;
6626
6625
            }
6627
6626
            else
6628
6627
                pAhciPortTaskState = pAhciPort->aCachedTasks[idx];
6657
6656
                    ahciLog(("%s: Setting device into reset state\n", __FUNCTION__));
6658
6657
                    pAhciPort->fResetDevice = true;
6659
6658
                    ahciSendD2HFis(pAhciPort, pAhciPortTaskState, pAhciPortTaskState->cmdFis, true);
6660
 
                    pAhciPort->aCachedTasks[idx] = pAhciPortTaskState;
6661
6659
 
6662
6660
                    ASMAtomicCmpXchgSize(&pAhciPortTaskState->enmTxState, AHCITXSTATE_FREE, AHCITXSTATE_ACTIVE, fXchg);
6663
6661
                    AssertMsg(fXchg, ("Task is not active\n"));
6666
6664
                else if (pAhciPort->fResetDevice) /* The bit is not set and we are in a reset state. */
6667
6665
                {
6668
6666
                    ahciFinishStorageDeviceReset(pAhciPort, pAhciPortTaskState);
6669
 
                    pAhciPort->aCachedTasks[idx] = pAhciPortTaskState;
6670
6667
 
6671
6668
                    ASMAtomicCmpXchgSize(&pAhciPortTaskState->enmTxState, AHCITXSTATE_FREE, AHCITXSTATE_ACTIVE, fXchg);
6672
6669
                    AssertMsg(fXchg, ("Task is not active\n"));