Lines Matching refs:rdreg
296 struct vgic_redist_region *iter, *rdreg = vgic_cpu->rdreg;
298 if (!rdreg)
301 if (vgic_cpu->rdreg_index < rdreg->free_index - 1) {
303 } else if (rdreg->count && vgic_cpu->rdreg_index == (rdreg->count - 1)) {
305 gpa_t end = rdreg->base + rdreg->count * KVM_VGIC_V3_REDIST_SIZE;
777 struct vgic_redist_region *rdreg;
793 rdreg = vgic_v3_rdist_free_slot(&vgic->rd_regions);
794 if (!rdreg)
802 vgic_cpu->rdreg = rdreg;
803 vgic_cpu->rdreg_index = rdreg->free_index;
805 rd_base = rdreg->base + rdreg->free_index * KVM_VGIC_V3_REDIST_SIZE;
822 rdreg->free_index++;
881 struct vgic_redist_region *rdreg;
896 rdreg = list_last_entry(rd_regions,
900 if (!count && rdreg->count)
906 if (index != rdreg->index + 1)
923 rdreg = kzalloc(sizeof(*rdreg), GFP_KERNEL_ACCOUNT);
924 if (!rdreg)
927 rdreg->base = VGIC_ADDR_UNDEF;
929 ret = vgic_check_iorange(kvm, rdreg->base, base, SZ_64K, size);
933 rdreg->base = base;
934 rdreg->count = count;
935 rdreg->free_index = 0;
936 rdreg->index = index;
938 list_add_tail(&rdreg->list, rd_regions);
941 kfree(rdreg);
945 void vgic_v3_free_redist_region(struct vgic_redist_region *rdreg)
947 list_del(&rdreg->list);
948 kfree(rdreg);
967 struct vgic_redist_region *rdreg;
970 rdreg = vgic_v3_rdist_region_from_index(kvm, index);
971 vgic_v3_free_redist_region(rdreg);