Lines Matching refs:rdreg

258 	struct vgic_redist_region *iter, *rdreg = vgic_cpu->rdreg;  in vgic_mmio_vcpu_rdist_is_last()  local
260 if (!rdreg) in vgic_mmio_vcpu_rdist_is_last()
263 if (vgic_cpu->rdreg_index < rdreg->free_index - 1) { in vgic_mmio_vcpu_rdist_is_last()
265 } else if (rdreg->count && vgic_cpu->rdreg_index == (rdreg->count - 1)) { in vgic_mmio_vcpu_rdist_is_last()
267 gpa_t end = rdreg->base + rdreg->count * KVM_VGIC_V3_REDIST_SIZE; in vgic_mmio_vcpu_rdist_is_last()
703 struct vgic_redist_region *rdreg; in vgic_register_redist_iodev() local
716 rdreg = vgic_v3_rdist_free_slot(&vgic->rd_regions); in vgic_register_redist_iodev()
717 if (!rdreg) in vgic_register_redist_iodev()
723 vgic_cpu->rdreg = rdreg; in vgic_register_redist_iodev()
724 vgic_cpu->rdreg_index = rdreg->free_index; in vgic_register_redist_iodev()
726 rd_base = rdreg->base + rdreg->free_index * KVM_VGIC_V3_REDIST_SIZE; in vgic_register_redist_iodev()
743 rdreg->free_index++; in vgic_register_redist_iodev()
797 struct vgic_redist_region *rdreg; in vgic_v3_alloc_redist_region() local
812 rdreg = list_last_entry(rd_regions, in vgic_v3_alloc_redist_region()
816 if (!count && rdreg->count) in vgic_v3_alloc_redist_region()
822 if (index != rdreg->index + 1) in vgic_v3_alloc_redist_region()
839 rdreg = kzalloc(sizeof(*rdreg), GFP_KERNEL_ACCOUNT); in vgic_v3_alloc_redist_region()
840 if (!rdreg) in vgic_v3_alloc_redist_region()
843 rdreg->base = VGIC_ADDR_UNDEF; in vgic_v3_alloc_redist_region()
845 ret = vgic_check_iorange(kvm, rdreg->base, base, SZ_64K, size); in vgic_v3_alloc_redist_region()
849 rdreg->base = base; in vgic_v3_alloc_redist_region()
850 rdreg->count = count; in vgic_v3_alloc_redist_region()
851 rdreg->free_index = 0; in vgic_v3_alloc_redist_region()
852 rdreg->index = index; in vgic_v3_alloc_redist_region()
854 list_add_tail(&rdreg->list, rd_regions); in vgic_v3_alloc_redist_region()
857 kfree(rdreg); in vgic_v3_alloc_redist_region()
861 void vgic_v3_free_redist_region(struct vgic_redist_region *rdreg) in vgic_v3_free_redist_region() argument
863 list_del(&rdreg->list); in vgic_v3_free_redist_region()
864 kfree(rdreg); in vgic_v3_free_redist_region()
881 struct vgic_redist_region *rdreg; in vgic_v3_set_redist_base() local
883 rdreg = vgic_v3_rdist_region_from_index(kvm, index); in vgic_v3_set_redist_base()
884 vgic_v3_free_redist_region(rdreg); in vgic_v3_set_redist_base()