Message ID | 20170721200010.29010-14-andre.przywara@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Andre, On 21/07/17 21:00, Andre Przywara wrote: > For LPIs we stored the priority value in struct pending_irq, but all > other type of IRQs were using the irq_rank structure for that. > Now that every IRQ using pending_irq, we can remove the special handling > we had in place for LPIs and just use the now unified access wrappers. Can we move it closer to the patch (#9 I think) removing the last reference on the wrapper? Cheers, > > Signed-off-by: Andre Przywara <andre.przywara@arm.com> > --- > xen/arch/arm/vgic-v2.c | 7 ------- > xen/arch/arm/vgic-v3.c | 11 ----------- > xen/include/asm-arm/vgic.h | 1 - > 3 files changed, 19 deletions(-) > > diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c > index ed7ff3b..a3fd500 100644 > --- a/xen/arch/arm/vgic-v2.c > +++ b/xen/arch/arm/vgic-v2.c > @@ -690,18 +690,11 @@ static struct pending_irq *vgic_v2_lpi_to_pending(struct domain *d, > BUG(); > } > > -static int vgic_v2_lpi_get_priority(struct domain *d, unsigned int vlpi) > -{ > - /* Dummy function, no LPIs on a VGICv2. */ > - BUG(); > -} > - > static const struct vgic_ops vgic_v2_ops = { > .vcpu_init = vgic_v2_vcpu_init, > .domain_init = vgic_v2_domain_init, > .domain_free = vgic_v2_domain_free, > .lpi_to_pending = vgic_v2_lpi_to_pending, > - .lpi_get_priority = vgic_v2_lpi_get_priority, > .max_vcpus = 8, > }; > > diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c > index e58e77e..d3356ae 100644 > --- a/xen/arch/arm/vgic-v3.c > +++ b/xen/arch/arm/vgic-v3.c > @@ -1757,23 +1757,12 @@ static struct pending_irq *vgic_v3_lpi_to_pending(struct domain *d, > return pirq; > } > > -/* Retrieve the priority of an LPI from its struct pending_irq. */ > -static int vgic_v3_lpi_get_priority(struct domain *d, uint32_t vlpi) > -{ > - struct pending_irq *p = vgic_v3_lpi_to_pending(d, vlpi); > - > - ASSERT(p); > - > - return p->priority; > -} > - > static const struct vgic_ops v3_ops = { > .vcpu_init = vgic_v3_vcpu_init, > .domain_init = vgic_v3_domain_init, > .domain_free = vgic_v3_domain_free, > .emulate_reg = vgic_v3_emulate_reg, > .lpi_to_pending = vgic_v3_lpi_to_pending, > - .lpi_get_priority = vgic_v3_lpi_get_priority, > /* > * We use both AFF1 and AFF0 in (v)MPIDR. Thus, the max number of CPU > * that can be supported is up to 4096(==256*16) in theory. > diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h > index 59d52c6..6343c95 100644 > --- a/xen/include/asm-arm/vgic.h > +++ b/xen/include/asm-arm/vgic.h > @@ -143,7 +143,6 @@ struct vgic_ops { > bool (*emulate_reg)(struct cpu_user_regs *regs, union hsr hsr); > /* lookup the struct pending_irq for a given LPI interrupt */ > struct pending_irq *(*lpi_to_pending)(struct domain *d, unsigned int vlpi); > - int (*lpi_get_priority)(struct domain *d, uint32_t vlpi); > /* Maximum number of vCPU supported */ > const unsigned int max_vcpus; > }; >
diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index ed7ff3b..a3fd500 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -690,18 +690,11 @@ static struct pending_irq *vgic_v2_lpi_to_pending(struct domain *d, BUG(); } -static int vgic_v2_lpi_get_priority(struct domain *d, unsigned int vlpi) -{ - /* Dummy function, no LPIs on a VGICv2. */ - BUG(); -} - static const struct vgic_ops vgic_v2_ops = { .vcpu_init = vgic_v2_vcpu_init, .domain_init = vgic_v2_domain_init, .domain_free = vgic_v2_domain_free, .lpi_to_pending = vgic_v2_lpi_to_pending, - .lpi_get_priority = vgic_v2_lpi_get_priority, .max_vcpus = 8, }; diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index e58e77e..d3356ae 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -1757,23 +1757,12 @@ static struct pending_irq *vgic_v3_lpi_to_pending(struct domain *d, return pirq; } -/* Retrieve the priority of an LPI from its struct pending_irq. */ -static int vgic_v3_lpi_get_priority(struct domain *d, uint32_t vlpi) -{ - struct pending_irq *p = vgic_v3_lpi_to_pending(d, vlpi); - - ASSERT(p); - - return p->priority; -} - static const struct vgic_ops v3_ops = { .vcpu_init = vgic_v3_vcpu_init, .domain_init = vgic_v3_domain_init, .domain_free = vgic_v3_domain_free, .emulate_reg = vgic_v3_emulate_reg, .lpi_to_pending = vgic_v3_lpi_to_pending, - .lpi_get_priority = vgic_v3_lpi_get_priority, /* * We use both AFF1 and AFF0 in (v)MPIDR. Thus, the max number of CPU * that can be supported is up to 4096(==256*16) in theory. diff --git a/xen/include/asm-arm/vgic.h b/xen/include/asm-arm/vgic.h index 59d52c6..6343c95 100644 --- a/xen/include/asm-arm/vgic.h +++ b/xen/include/asm-arm/vgic.h @@ -143,7 +143,6 @@ struct vgic_ops { bool (*emulate_reg)(struct cpu_user_regs *regs, union hsr hsr); /* lookup the struct pending_irq for a given LPI interrupt */ struct pending_irq *(*lpi_to_pending)(struct domain *d, unsigned int vlpi); - int (*lpi_get_priority)(struct domain *d, uint32_t vlpi); /* Maximum number of vCPU supported */ const unsigned int max_vcpus; };
For LPIs we stored the priority value in struct pending_irq, but all other type of IRQs were using the irq_rank structure for that. Now that every IRQ using pending_irq, we can remove the special handling we had in place for LPIs and just use the now unified access wrappers. Signed-off-by: Andre Przywara <andre.przywara@arm.com> --- xen/arch/arm/vgic-v2.c | 7 ------- xen/arch/arm/vgic-v3.c | 11 ----------- xen/include/asm-arm/vgic.h | 1 - 3 files changed, 19 deletions(-)