[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 19/28] x86/vioapic: extend vioapic_get_vector() to support remapping format RTE
On Fri, Nov 17, 2017 at 02:22:26PM +0800, Chao Gao wrote: > When IOAPIC RTE is in remapping format, it doesn't contain the vector of > interrupt. For this case, the RTE contains an index of interrupt remapping > table where the vector of interrupt is stored. This patchs gets the vector > through a vIOMMU interface. I think this should be merged with the previous patch. > Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> > Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx> > --- > xen/arch/x86/hvm/vioapic.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c > index 0f20e3f..8b34b21 100644 > --- a/xen/arch/x86/hvm/vioapic.c > +++ b/xen/arch/x86/hvm/vioapic.c > @@ -560,11 +560,23 @@ int vioapic_get_vector(const struct domain *d, unsigned > int gsi) > { > unsigned int pin; > const struct hvm_vioapic *vioapic = gsi_vioapic(d, gsi, &pin); > + struct arch_irq_remapping_request request; > > if ( !vioapic ) > return -EINVAL; > > - return vioapic->redirtbl[pin].fields.vector; > + irq_request_ioapic_fill(&request, vioapic->id, > vioapic->redirtbl[pin].bits); > + if ( viommu_check_irq_remapping(vioapic->domain, &request) ) > + { > + struct arch_irq_remapping_info info; > + > + return unlikely(viommu_get_irq_info(vioapic->domain, &request, > &info)) > + ? : info.vector; > + } > + else > + { > + return vioapic->redirtbl[pin].fields.vector; > + } Unneeded braces. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |