Changeset 84315 in vbox for trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp
- Timestamp:
- May 15, 2020 6:30:29 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp
r84314 r84315 2637 2637 2638 2638 /** 2639 * Halts command processing.2640 *2641 * @param pDevIns The IOMMU device instance.2642 */2643 static void iommuAmdHaltCmdProcessing(PPDMDEVINS pDevIns)2644 {2645 IOMMU_ASSERT_LOCKED(pDevIns);2646 2647 PIOMMU pThis = PDMDEVINS_2_DATA(pDevIns, PIOMMU);2648 ASMAtomicAndU64(&pThis->Status.u64, ~IOMMU_STATUS_CMD_BUF_RUNNING);2649 }2650 2651 2652 /**2653 2639 * Wakes up the command thread if there are commands to be processed or if 2654 2640 * processing is requested to be stopped by software. … … 3710 3696 AssertCompile(sizeof(EVT_GENERIC_T) == sizeof(EVT_CMD_HW_ERR_T)); 3711 3697 PCEVT_GENERIC_T pEvent = (PCEVT_GENERIC_T)pEvtCmdHwErr; 3698 PIOMMU pThis = PDMDEVINS_2_DATA(pDevIns, PIOMMU); 3712 3699 3713 3700 IOMMU_LOCK_NORET(pDevIns); … … 3715 3702 iommuAmdSetHwError(pDevIns, (PCEVT_GENERIC_T)pEvent); 3716 3703 iommuAmdWriteEvtLogEntry(pDevIns, (PCEVT_GENERIC_T)pEvent); 3717 iommuAmdHaltCmdProcessing(pDevIns);3704 ASMAtomicAndU64(&pThis->Status.u64, ~IOMMU_STATUS_CMD_BUF_RUNNING); 3718 3705 3719 3706 IOMMU_UNLOCK(pDevIns); … … 3804 3791 AssertCompile(sizeof(EVT_GENERIC_T) == sizeof(EVT_ILLEGAL_DTE_T)); 3805 3792 PCEVT_GENERIC_T pEvent = (PCEVT_GENERIC_T)pEvtIllegalCmd; 3793 PIOMMU pThis = PDMDEVINS_2_DATA(pDevIns, PIOMMU); 3806 3794 3807 3795 IOMMU_LOCK_NORET(pDevIns); 3808 3796 3809 3797 iommuAmdWriteEvtLogEntry(pDevIns, pEvent); 3810 iommuAmdHaltCmdProcessing(pDevIns);3798 ASMAtomicAndU64(&pThis->Status.u64, ~IOMMU_STATUS_CMD_BUF_RUNNING); 3811 3799 3812 3800 IOMMU_UNLOCK(pDevIns); … … 4768 4756 4769 4757 IOMMU_STATUS_T const Status = iommuAmdGetStatus(pThis); 4770 if (Status. u64 & IOMMU_STATUS_CMD_BUF_RUNNING)4758 if (Status.n.u1CmdBufRunning) 4771 4759 { 4772 4760 /* Get the offset we need to read the command from memory (circular buffer offset). */
Note:
See TracChangeset
for help on using the changeset viewer.