VirtualBox

Changeset 89872 in vbox for trunk


Ignore:
Timestamp:
Jun 24, 2021 9:06:52 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145330
Message:

DevHda: Don't forget to destroy the critical section. Cleanups. bugref:9890

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/DevHda.cpp

    r89869 r89872  
    42474247static void hdaR3DbgPrintBDL(PPDMDEVINS pDevIns, PHDASTATE pThis, PCDBGFINFOHLP pHlp, int idxStream)
    42484248{
    4249     const PHDASTREAM   pStream     = &pThis->aStreams[idxStream];
    4250     PCPDMAUDIOPCMPROPS pGuestProps = &pStream->State.Cfg.Props; /** @todo We don't make a distinction any more. The mixer hides that now. */
    4251 
    4252     uint64_t const u64BaseDMA = RT_MAKE_U64(HDA_STREAM_REG(pThis, BDPL, idxStream),
    4253                                             HDA_STREAM_REG(pThis, BDPU, idxStream));
    4254     uint16_t const u16LVI     = HDA_STREAM_REG(pThis, LVI, idxStream);
    4255     uint32_t const u32CBL     = HDA_STREAM_REG(pThis, CBL, idxStream);
    4256     uint8_t const  idxCurBdle = pStream->State.idxCurBdle;
     4249    const PHDASTREAM   pStream  = &pThis->aStreams[idxStream];
     4250    PCPDMAUDIOPCMPROPS pProps   = &pStream->State.Cfg.Props;
     4251    uint64_t const u64BaseDMA   = RT_MAKE_U64(HDA_STREAM_REG(pThis, BDPL, idxStream),
     4252                                              HDA_STREAM_REG(pThis, BDPU, idxStream));
     4253    uint16_t const u16LVI       = HDA_STREAM_REG(pThis, LVI, idxStream);
     4254    uint32_t const u32CBL       = HDA_STREAM_REG(pThis, CBL, idxStream);
     4255    uint8_t const  idxCurBdle   = pStream->State.idxCurBdle;
    42574256    pHlp->pfnPrintf(pHlp, "Stream #%d BDL: %s%#011RX64 LB %#x (LVI=%u)\n", idxStream, "%%" /*vboxdbg phys prefix*/,
    42584257                    u64BaseDMA, u16LVI * sizeof(HDABDLEDESC), u16LVI);
     
    42804279            RTStrPrintf(szFlags, sizeof(szFlags), " !!fFlags=%#x!!\n", bd.fFlags);
    42814280        pHlp->pfnPrintf(pHlp, "    %sBDLE%03u: %s%#011RX64 LB %#06x (%RU64 us) %s%s\n", idxCurBdle == i ? "=>" : "  ", i, "%%",
    4282                         bd.u64BufAddr, bd.u32BufSize, PDMAudioPropsBytesToMicro(pGuestProps, bd.u32BufSize),
     4281                        bd.u64BufAddr, bd.u32BufSize, PDMAudioPropsBytesToMicro(pProps, bd.u32BufSize),
    42834282                        bd.fFlags & HDA_BDLE_F_IOC ? " IOC=1" : "", szFlags);
    42844283
     
    42954294    }
    42964295    pHlp->pfnPrintf(pHlp, "  Total: %#RX64 bytes (%RU64), %RU64 ms\n", cbTotal, cbTotal,
    4297                     PDMAudioPropsBytesToMilli(pGuestProps, (uint32_t)cbTotal));
     4296                    PDMAudioPropsBytesToMilli(pProps, (uint32_t)cbTotal));
    42984297    if (cbTotal != u32CBL)
    42994298        pHlp->pfnPrintf(pHlp, "  Warning: %#RX64 bytes does not match CBL (%#RX64)!\n", cbTotal, u32CBL);
     
    46844683    PHDASTATE   pThis   = PDMDEVINS_2_DATA(pDevIns, PHDASTATE);
    46854684    PHDASTATER3 pThisCC = PDMDEVINS_2_DATA_CC(pDevIns, PHDASTATER3);
    4686     DEVHDA_LOCK(pDevIns, pThis); /** @todo r=bird: this will fail on early constructor failure. */
     4685
     4686    if (PDMCritSectIsInitialized(&pThis->CritSect))
     4687        PDMCritSectEnter(&pThis->CritSect, VERR_IGNORED);
    46874688
    46884689    PHDADRIVER pDrv;
     
    47134714    }
    47144715
    4715     DEVHDA_UNLOCK(pDevIns, pThis);
     4716    if (PDMCritSectIsInitialized(&pThis->CritSect))
     4717    {
     4718        PDMCritSectLeave(&pThis->CritSect);
     4719        PDMR3CritSectDelete(&pThis->CritSect);
     4720    }
    47164721    return VINF_SUCCESS;
    47174722}
  • trunk/src/VBox/Devices/Audio/DevHda.h

    r89869 r89872  
    2323
    2424#include <iprt/path.h>
    25 
    2625#include <VBox/vmm/pdmdev.h>
    27 
    2826#include "AudioMixer.h"
    2927
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