VirtualBox

Ignore:
Timestamp:
Jun 11, 2021 8:51:10 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145064
Message:

Intel IOMMU: bugref:9967 Allow PDMIoApicSetEoi operation to be queued to ring-3 if I/O APIC isn't available in R0.
This key change is taking the PDM lock such that it doesn't fail (VINF_SUCCESS instead of VINF_IOM_R3_MMIO_WRITE for rcBusy, which wouldn't have worked anyway when called via APICHvSetEoi for instance).
Also cleaned up the prototype of PDMIoApicSendMsi a bit (use PVMCC instead of PPDMDEVINS).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r89602 r89620  
    53715371            if (pPciDev)
    53725372            {
    5373                 size_t const    idxBus = pPciDev->Int.s.idxPdmBus;
     5373                size_t const idxBus = pPciDev->Int.s.idxPdmBus;
    53745374                AssertBreak(idxBus < RT_ELEMENTS(pVM->pdm.s.aPciBuses));
    5375                 PPDMPCIBUS      pBus   = &pVM->pdm.s.aPciBuses[idxBus];
     5375                PPDMPCIBUS   pBus   = &pVM->pdm.s.aPciBuses[idxBus];
    53765376
    53775377                pdmLock(pVM);
     
    53945394        case PDMDEVHLPTASKOP_IOAPIC_SEND_MSI:
    53955395        {
    5396             Assert(pTask->pDevInsR3);
    5397             PDMIoApicSendMsi(pTask->pDevInsR3, pTask->u.IoApicSendMsi.uBusDevFn, &pTask->u.IoApicSendMsi.Msi,
    5398                              pTask->u.IoApicSendMsi.uTagSrc);
     5396            PDMIoApicSendMsi(pVM, pTask->u.IoApicSendMsi.uBusDevFn, &pTask->u.IoApicSendMsi.Msi, pTask->u.IoApicSendMsi.uTagSrc);
     5397            break;
     5398        }
     5399
     5400        case PDMDEVHLPTASKOP_IOAPIC_SET_EOI:
     5401        {
     5402            PDMIoApicBroadcastEoi(pVM, pTask->u.IoApicSetEoi.uVector);
    53995403            break;
    54005404        }
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