Changeset 88764 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Apr 29, 2021 5:24:02 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Bus/DevIommuIntel.cpp
r88744 r88764 1508 1508 * don't think it needs to be checked/handled here? */ 1509 1509 1510 /* 1511 * Get the current queue size. 1512 */ 1510 1513 uint64_t const uIqaReg = dmarRegReadRaw64(pThis, VTD_MMIO_OFF_IQA_REG); 1511 1514 uint8_t const cQueuePages = 1 << (uIqaReg & VTD_BF_IQA_REG_QS_MASK); … … 1519 1522 Assert(fDw != VTD_IQA_REG_DW_256_BIT || !(offQueueTail & RT_BIT(4))); 1520 1523 Assert(fDw != VTD_IQA_REG_DW_256_BIT || !(offQueueHead & RT_BIT(4))); 1521 1522 if (offQueueTail <= cbQueue) 1524 Assert(offQueueHead < cbQueue); 1525 1526 /* 1527 * Read the requests in the queue from guest memory into our buffer. 1528 */ 1529 if (offQueueTail < cbQueue) 1523 1530 { 1524 1531 RTGCPHYS const GCPhysRequests = (uIqaReg & VTD_BF_IQA_REG_IQA_MASK) + offQueueHead; … … 1559 1566 dmarRegWriteRaw64(pThis, VTD_MMIO_OFF_IQH_REG, offQueueTail); 1560 1567 1561 /* Process all requests (in FIFO order) after more paranoid checks. */1568 /* Process all requests (in FIFO order). */ 1562 1569 Assert(cbRequests <= cbQueue); 1563 1570 dmarR3InvQueueProcessRequests(pDevIns, pvRequests, cbRequests, fDw); … … 1617 1624 * temporaries and release the lock ASAP. 1618 1625 * 1619 * Order of register read and outputting according to1626 * Order of register being read and outputted is in according with the 1620 1627 * Intel VT-d spec. 10.4 "Register Descriptions" for no particular reason. 1621 1628 */
Note:
See TracChangeset
for help on using the changeset viewer.