hw/intc/arm_gicv3_kvm: Remove writes to ICPENDR registers
As per the arm-vgic-v3 kernel doc [1]:
Accesses to GICD_ICPENDR register region and GICR_ICPENDR0 registers
have RAZ/WI semantics, meaning that reads always return 0 and writes
are always ignored.
The state behind these registers (both 0 and 1 bits) is written by
writing to the GICD_ISPENDR and GICR_ISPENDR0 registers, unlike
some of the other set/clear register pairs.
Remove the useless writes to ICPENDR registers in kvm_arm_gicv3_put().
[1] https://docs.kernel.org/virt/kvm/devices/arm-vgic-v3.html
Signed-off-by: Zenghui Yu <zenghui.yu@linux.dev>
Message-id: 20250729161650.43758-2-zenghui.yu@linux.dev
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
cd9f752fee
commit
a0555e36fc
1 changed files with 1 additions and 3 deletions
|
|
@ -387,8 +387,6 @@ static void kvm_arm_gicv3_put(GICv3State *s)
|
|||
reg = c->level;
|
||||
kvm_gic_line_level_access(s, 0, ncpu, ®, true);
|
||||
|
||||
reg = ~0;
|
||||
kvm_gicr_access(s, GICR_ICPENDR0, ncpu, ®, true);
|
||||
reg = c->gicr_ipendr0;
|
||||
kvm_gicr_access(s, GICR_ISPENDR0, ncpu, ®, true);
|
||||
|
||||
|
|
@ -445,7 +443,7 @@ static void kvm_arm_gicv3_put(GICv3State *s)
|
|||
kvm_gic_put_line_level_bmp(s, s->level);
|
||||
|
||||
/* s->pending bitmap -> GICD_ISPENDRn */
|
||||
kvm_dist_putbmp(s, GICD_ISPENDR, GICD_ICPENDR, s->pending);
|
||||
kvm_dist_putbmp(s, GICD_ISPENDR, 0, s->pending);
|
||||
|
||||
/* s->active bitmap -> GICD_ISACTIVERn */
|
||||
kvm_dist_putbmp(s, GICD_ISACTIVER, GICD_ICACTIVER, s->active);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue