diff options
author | Eric Auger <eric.auger@redhat.com> | 2021-04-05 18:39:40 +0200 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2021-04-06 15:51:38 +0200 |
commit | 28e9d4bce3be9b8fec6c854f87923db99c8fb874 (patch) | |
tree | 78ebce0a0c541f16786c52ce58e4f47ca8e57281 /include/kvm | |
parent | kvm: arm64: vgic-v3: Introduce vgic_v3_free_redist_region() (diff) | |
download | linux-28e9d4bce3be9b8fec6c854f87923db99c8fb874.tar.xz linux-28e9d4bce3be9b8fec6c854f87923db99c8fb874.zip |
KVM: arm64: vgic-v3: Expose GICR_TYPER.Last for userspace
Commit 23bde34771f1 ("KVM: arm64: vgic-v3: Drop the
reporting of GICR_TYPER.Last for userspace") temporarily fixed
a bug identified when attempting to access the GICR_TYPER
register before the redistributor region setting, but dropped
the support of the LAST bit.
Emulating the GICR_TYPER.Last bit still makes sense for
architecture compliance though. This patch restores its support
(if the redistributor region was set) while keeping the code safe.
We introduce a new helper, vgic_mmio_vcpu_rdist_is_last() which
computes whether a redistributor is the highest one of a series
of redistributor contributor pages.
With this new implementation we do not need to have a uaccess
read accessor anymore.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210405163941.510258-9-eric.auger@redhat.com
Diffstat (limited to 'include/kvm')
-rw-r--r-- | include/kvm/arm_vgic.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h index 3d74f1060bd1..ec621180ef09 100644 --- a/include/kvm/arm_vgic.h +++ b/include/kvm/arm_vgic.h @@ -322,6 +322,7 @@ struct vgic_cpu { */ struct vgic_io_device rd_iodev; struct vgic_redist_region *rdreg; + u32 rdreg_index; /* Contains the attributes and gpa of the LPI pending tables. */ u64 pendbaser; |