[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 18/28] x86/vioapic: Hook interrupt delivery of vIOAPIC
On Fri, Nov 17, 2017 at 02:22:25PM +0800, Chao Gao wrote: > When irq remapping is enabled, IOAPIC Redirection Entry may be in remapping > format. If that, generate an irq_remapping_request and call the common "If that's the case, ..." > VIOMMU abstraction's callback to handle this interrupt request. Device > model is responsible for checking the request's validity. What does this exactly mean? Device model is not involved in what the guest writes to the vIOAPIC RTE, so it's impossible for the device model to validate this in any way. > Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> > Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx> > > --- > v3: > - use the new interface to check remapping format. > --- > xen/arch/x86/hvm/vioapic.c | 9 +++++++++ > xen/include/asm-x86/viommu.h | 9 +++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c > index 97b419f..0f20e3f 100644 > --- a/xen/arch/x86/hvm/vioapic.c > +++ b/xen/arch/x86/hvm/vioapic.c > @@ -30,6 +30,7 @@ > #include <xen/lib.h> > #include <xen/errno.h> > #include <xen/sched.h> > +#include <xen/viommu.h> > #include <public/hvm/ioreq.h> > #include <asm/hvm/io.h> > #include <asm/hvm/vpic.h> > @@ -387,9 +388,17 @@ static void vioapic_deliver(struct hvm_vioapic *vioapic, > unsigned int pin) > struct vlapic *target; > struct vcpu *v; > unsigned int irq = vioapic->base_gsi + pin; > + struct arch_irq_remapping_request request; > > ASSERT(spin_is_locked(&d->arch.hvm_domain.irq_lock)); > > + irq_request_ioapic_fill(&request, vioapic->id, > vioapic->redirtbl[pin].bits); > + if ( viommu_check_irq_remapping(d, &request) ) > + { > + viommu_handle_irq_request(d, &request); > + return; > + } Will this compile if you disable vIOMMU in Kconfig? 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 |