Changeset 108527 in vbox for trunk/src/VBox/VMM/VMMAll/GICAll.cpp
- Timestamp:
- Mar 12, 2025 7:47:59 AM (6 weeks ago)
- svn:sync-xref-src-repo-rev:
- 167917
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/GICAll.cpp
r108526 r108527 695 695 * @returns Strict VBox status code. 696 696 * @param pGicDev The GIC distributor state. 697 * @param offReg The offset of the register in the distributor register map.698 697 * @param idxReg The index of the register in the GICD_IROUTER range. 699 698 * @param uValue The value to write to the register. 700 699 */ 701 static VBOXSTRICTRC gicDistWriteIntrRoutingReg(PGICDEV pGicDev, uint16_t offReg, uint16_tidxReg, uint32_t uValue)700 static VBOXSTRICTRC gicDistWriteIntrRoutingReg(PGICDEV pGicDev, uint16_t idxReg, uint32_t uValue) 702 701 { 703 702 /* When affinity routing is disabled, writes are ignored. */ … … 708 707 AssertReturn(idxReg < RT_ELEMENTS(pGicDev->au32IntrRouting), VERR_BUFFER_OVERFLOW); 709 708 Assert(idxReg < sizeof(pGicDev->bmIntrRoutingMode) * 8); 710 if (!( offReg & 4))709 if (!(idxReg % 2)) 711 710 { 712 711 /* Lower 32-bits. */ … … 2082 2081 { 2083 2082 uint16_t const idxReg = (offReg - GIC_DIST_REG_IROUTERn_OFF_START) / cbReg; 2084 return gicDistWriteIntrRoutingReg(pGicDev, offReg,idxReg, uValue);2083 return gicDistWriteIntrRoutingReg(pGicDev, idxReg, uValue); 2085 2084 } 2086 2085 if (offReg - GIC_DIST_REG_IROUTERnE_OFF_START < GIC_DIST_REG_IROUTERnE_RANGE_SIZE) … … 2088 2087 uint16_t const idxExt = RT_ELEMENTS(pGicDev->au32IntrRouting) / 2; 2089 2088 uint16_t const idxReg = idxExt + (offReg - GIC_DIST_REG_IROUTERnE_OFF_START) / cbReg; 2090 return gicDistWriteIntrRoutingReg(pGicDev, offReg,idxReg, uValue);2089 return gicDistWriteIntrRoutingReg(pGicDev, idxReg, uValue); 2091 2090 } 2092 2091
Note:
See TracChangeset
for help on using the changeset viewer.