[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] arm: vgic: Split vgic_domain_init() functionality into two functions
commit ebc8c6cdeb36235f2421a894c236fa2bf1be33da Author: Shanker Donthineni <shankerd@xxxxxxxxxxxxxx> AuthorDate: Mon Jun 27 15:33:39 2016 -0500 Commit: Stefano Stabellini <sstabellini@xxxxxxxxxx> CommitDate: Thu Jul 14 15:14:43 2016 +0100 arm: vgic: Split vgic_domain_init() functionality into two functions Separate the code logic that does the registration of vgic_v3/v2 ops to a new function domain_vgic_register(). The intention of this separation is to record the required mmio count in vgic_v3/v2_init() and pass it to function domain_io_init() in a follow-up patch patch. Signed-off-by: Shanker Donthineni <shankerd@xxxxxxxxxxxxxx> Reviewed-by: Julien Grall <julien.grall@xxxxxxx> Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> --- xen/arch/arm/vgic.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index 5b9d9b6..35723c9 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -90,19 +90,8 @@ static void vgic_rank_init(struct vgic_irq_rank *rank, uint8_t index, rank->vcpu[i] = vcpu; } -int domain_vgic_init(struct domain *d, unsigned int nr_spis) +static int domain_vgic_register(struct domain *d) { - int i; - int ret; - - d->arch.vgic.ctlr = 0; - - /* Limit the number of virtual SPIs supported to (1020 - 32) = 988 */ - if ( nr_spis > (1020 - NR_LOCAL_IRQS) ) - return -EINVAL; - - d->arch.vgic.nr_spis = nr_spis; - switch ( d->arch.vgic.version ) { #ifdef CONFIG_HAS_GICV3 @@ -121,6 +110,26 @@ int domain_vgic_init(struct domain *d, unsigned int nr_spis) return -ENODEV; } + return 0; +} + +int domain_vgic_init(struct domain *d, unsigned int nr_spis) +{ + int i; + int ret; + + d->arch.vgic.ctlr = 0; + + /* Limit the number of virtual SPIs supported to (1020 - 32) = 988 */ + if ( nr_spis > (1020 - NR_LOCAL_IRQS) ) + return -EINVAL; + + d->arch.vgic.nr_spis = nr_spis; + + ret = domain_vgic_register(d); + if ( ret < 0 ) + return ret; + spin_lock_init(&d->arch.vgic.lock); d->arch.vgic.shared_irqs = -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |