Changeset 88631 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Apr 21, 2021 11:54:19 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143934
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevIoApic.cpp
r88612 r88631 536 536 RT_ZERO(MsiIn); 537 537 ioapicGetMsiFromApicIntr(&ApicIntr, &MsiIn); 538 int rcRemap = pThisCC->pIoApicHlp->pfnIommuMsiRemap(pDevIns, VBOX_PCI_BDF_SB_IOAPIC, &MsiIn, &MsiOut); 538 int const rcRemap = pThisCC->pIoApicHlp->pfnIommuMsiRemap(pDevIns, VBOX_PCI_BDF_SB_IOAPIC, &MsiIn, &MsiOut); 539 if (RT_SUCCESS(rcRemap)) 540 STAM_COUNTER_INC(&pThis->StatIommuRemappedIntr); 541 else if (rcRemap == VERR_IOMMU_NOT_PRESENT) 542 MsiOut = MsiIn; 543 else 544 { 545 STAM_COUNTER_INC(&pThis->StatIommuDiscardedIntr); 546 return; 547 } 548 549 ioapicGetApicIntrFromMsi(&MsiOut, &ApicIntr); 550 551 # ifdef RT_STRICT 539 552 if (RT_SUCCESS(rcRemap)) 540 553 { 541 STAM_COUNTER_INC(&pThis->StatIommuRemappedIntr);542 LogFlow(("IOAPIC: IOMMU remapped interrupt %#x to %#x\n", MsiIn.Data.n.u8Vector, MsiOut.Data.n.u8Vector));543 ioapicGetApicIntrFromMsi(&MsiOut, &ApicIntr);544 554 Assert(ApicIntr.u8Polarity == IOAPIC_RTE_GET_POLARITY(u64Rte)); /* Ensure polarity hasn't changed. */ 545 555 Assert(ApicIntr.u8TriggerMode == u8TriggerMode); /* Ensure trigger mode hasn't changed. */ 546 556 } 547 else 548 { 549 STAM_COUNTER_INC(&pThis->StatIommuDiscardedIntr); 550 Log(("IOAPIC: IOMMU discarded interrupt %#x. rc=%Rrc\n", ApicIntr.u8Vector, rcRemap)); 551 return; 552 } 557 # endif 553 558 #endif 554 559 … … 925 930 MSIMSG MsiOut; 926 931 RT_ZERO(MsiOut); 927 int rcRemap = pThisCC->pIoApicHlp->pfnIommuMsiRemap(pDevIns, uBusDevFn, pMsi, &MsiOut);932 int const rcRemap = pThisCC->pIoApicHlp->pfnIommuMsiRemap(pDevIns, uBusDevFn, pMsi, &MsiOut); 928 933 if (RT_SUCCESS(rcRemap)) 929 {930 934 STAM_COUNTER_INC(&pThis->StatIommuRemappedMsi); 931 ioapicGetApicIntrFromMsi(&MsiOut, &ApicIntr);932 }935 else if (rcRemap == VERR_IOMMU_NOT_PRESENT) 936 MsiOut = *pMsi; 933 937 else 934 938 { 935 939 STAM_COUNTER_INC(&pThis->StatIommuDiscardedMsi); 936 Log(("IOAPIC: MSI (Addr=%#RX64 Data=%#RX32) remapping failed. rc=%Rrc", pMsi->Addr.u64, pMsi->Data.u32, rcRemap));937 940 return; 938 941 } 942 ioapicGetApicIntrFromMsi(&MsiOut, &ApicIntr); 939 943 } 940 944 else
Note:
See TracChangeset
for help on using the changeset viewer.