Skip to content

Commit

Permalink
hw/intc/arm_gicv3: Add cast to match the documentation
Browse files Browse the repository at this point in the history
The result of 1 << regbit with regbit==31 has a 1 in the 32nd bit.
When cast to uint64_t (for further bitwise OR), the 32 most
significant bits will be filled with 1s. However, the documentation
states that the upper 32 bits of ICC_AP[0/1]R<n>_EL2 are reserved.

Add an explicit cast to match the documentation.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Cc: [email protected]
Fixes: 28cca59 ("hw/intc/arm_gicv3: Add NMI handling CPU interface registers")
Signed-off-by: Alexandra Diupina <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
(cherry picked from commit 12dc8f6)
Signed-off-by: Michael Tokarev <[email protected]>
  • Loading branch information
Alexandra Diupina authored and Michael Tokarev committed Oct 15, 2024
1 parent c5f652a commit 6fecfc5
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion hw/intc/arm_gicv3_cpuif.c
Original file line number Diff line number Diff line change
Expand Up @@ -1170,7 +1170,7 @@ static void icc_activate_irq(GICv3CPUState *cs, int irq)
if (nmi) {
cs->icc_apr[cs->hppi.grp][regno] |= ICC_AP1R_EL1_NMI;
} else {
cs->icc_apr[cs->hppi.grp][regno] |= (1 << regbit);
cs->icc_apr[cs->hppi.grp][regno] |= (1U << regbit);
}

if (irq < GIC_INTERNAL) {
Expand Down

0 comments on commit 6fecfc5

Please sign in to comment.