VirtualBox

Changeset 108872 in vbox


Ignore:
Timestamp:
Apr 7, 2025 1:48:00 PM (13 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168322
Message:

VMM/GIC: bugref:10877 GIC ITS command-queue, work-in-progress.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/GITSAll.cpp

    r108871 r108872  
    549549            }
    550550
    551             /* Indicate to the guest we've fetched all commands. */
    552             GITS_CRIT_SECT_ENTER(pDevIns);
    553             pGitsDev->uCmdReadReg = RT_BF_SET(pGitsDev->uCmdReadReg, GITS_BF_CTRL_REG_CREADR_OFFSET, offWrite);
    554 
    555551            /*
    556552             * Process the commands in the buffer.
     
    558554            if (RT_SUCCESS(rc))
    559555            {
    560                 /* Don't hold the lock while processing commands. */
     556                /* Indicate to the guest we've fetched all commands. */
     557                GITS_CRIT_SECT_ENTER(pDevIns);
     558                pGitsDev->uCmdReadReg = RT_BF_SET(pGitsDev->uCmdReadReg, GITS_BF_CTRL_REG_CREADR_OFFSET, offWrite);
     559
     560                /* Don't hold the critical section while processing commands. */
    561561                GITS_CRIT_SECT_LEAVE(pDevIns);
    562562
    563                 uint32_t const cCmds = cbCmds / GITS_CMD_SIZE;
     563                uint32_t const cCmds = cbCmds / sizeof(GITSCMD);
    564564                for (uint32_t idxCmd = 0; idxCmd < cCmds; idxCmd++)
    565565                {
    566                     PCGITSCMD pCmd = (PCGITSCMD)((uintptr_t)pvBuf + (idxCmd * GITS_CMD_SIZE));
     566                    PCGITSCMD pCmd = (PCGITSCMD)((uintptr_t)pvBuf + (idxCmd * sizeof(GITSCMD)));
    567567                    uint8_t const uCmdId = pCmd->common.uCmdId;
    568568                    switch (uCmdId)
Note: See TracChangeset for help on using the changeset viewer.

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