KVM: arm/arm64: Helper to register a new redistributor region
authorEric Auger <eric.auger@redhat.com>
Tue, 22 May 2018 07:55:12 +0000 (09:55 +0200)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 25 May 2018 11:29:26 +0000 (12:29 +0100)
commitccc27bf5be7b78f64b67902bf27f6ef484bedc2c
tree08ea46b5b09d5a5e074ab162fe1b1fdf7a063a6f
parent028bf278d31a0d04b096ebb5340949e9fc9e2010
KVM: arm/arm64: Helper to register a new redistributor region

We introduce a new helper that creates and inserts a new redistributor
region into the rdist region list. This helper both handles the case
where the redistributor region size is known at registration time
and the legacy case where it is not (eventually depending on the number
of online vcpus). Depending on pfns, we perform all the possible checks
that we can do:

- end of memory crossing
- incorrect alignment of the base address
- collision with distributor region if already defined
- collision with already registered rdist regions
- check of the new index

Rdist regions must be inserted by increasing order of indices. Indices
must be contiguous.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
virt/kvm/arm/vgic/vgic-mmio-v3.c
virt/kvm/arm/vgic/vgic.h