hw/intc/arm_gicv3_redist: Implement gicv3_redist_vinvall()

Implement the gicv3_redist_vinvall() function (previously left as a
stub).  This function handles the work of a VINVALL command: it must
invalidate any cached information associated with a specific vCPU.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220408141550.1271295-36-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2022-04-08 15:15:44 +01:00
parent c6f797d519
commit e031346d98

View File

@ -1090,7 +1090,13 @@ void gicv3_redist_mov_vlpi(GICv3CPUState *src, uint64_t src_vptaddr,
void gicv3_redist_vinvall(GICv3CPUState *cs, uint64_t vptaddr)
{
/* The redistributor handling will be added in a subsequent commit */
if (!vcpu_resident(cs, vptaddr)) {
/* We don't have anything cached if the vCPU isn't resident */
return;
}
/* Otherwise, our only cached information is the HPPVLPI info */
gicv3_redist_update_vlpi(cs);
}
void gicv3_redist_inv_vlpi(GICv3CPUState *cs, int irq, uint64_t vptaddr)