[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 5/6] xen/arm: Add function to query IRQ 'ownership'.
On Fri, 16 Sep 2016, Konrad Rzeszutek Wilk wrote: > On Mon, Sep 05, 2016 at 06:14:00AM -0400, Kyle Temkin wrote: > > From: "Kyle J. Temkin" <temkink@xxxxxxxxxxxx> > > > > The addition of new IRQ-related platform hooks now allow platforms to > > perform platform-specific interrupt logic; allowing e.g. virtualization > > of platform-specific interrupt controller hardware. > > > > This commit adds the ability to for the platform to identify the domain > > a given IRQ routes to, allowing platform logic to e.g. deny access to > > registers associated with a given IRQ unless the requesting domain > > 'owns' the IRQ. This will be used on Tegra platforms, where the hardware > > domain needs access to its legacy interrupt controller, but should not > > be able to control registers that correspond to other domains' IRQs, or > > sections associated with IRQs routed to Xen. > > > > Signed-off-by: Kyle Temkin <temkink@xxxxxxxxxxxx> > > --- > > xen/arch/arm/irq.c | 10 ++++++++++ > > xen/include/asm-arm/irq.h | 2 ++ > > 2 files changed, 12 insertions(+) > > > > diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c > > index dc42817..c6e1a24 100644 > > --- a/xen/arch/arm/irq.c > > +++ b/xen/arch/arm/irq.c > > @@ -144,6 +144,16 @@ static inline struct domain *irq_get_domain(struct > > irq_desc *desc) > > return irq_get_guest_info(desc)->d; > > } > > > > +domid_t irq_get_domain_id(struct irq_desc *desc) > > +{ > > + // If this domain isn't routed to a guest, return DOMID_XEN. > > So that is some odd style > > + if(!test_bit(_IRQ_GUEST, &desc->status)) > > Ditto here? > > I think your v1 should have at least these fixed.. Didn't we have checkpatch.pl somewhere for Xen? Anyway, with these two small issues fixed: Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > > + return DOMID_XEN; > > + > > + // Otherise, get the guest domain's information. > > + return irq_get_domain(desc)->domain_id; > > +} > > + > > void irq_set_affinity(struct irq_desc *desc, const cpumask_t *cpu_mask) > > { > > if ( desc != NULL ) > > diff --git a/xen/include/asm-arm/irq.h b/xen/include/asm-arm/irq.h > > index 8f7a167..55300a8 100644 > > --- a/xen/include/asm-arm/irq.h > > +++ b/xen/include/asm-arm/irq.h > > @@ -45,6 +45,8 @@ int route_irq_to_guest(struct domain *d, unsigned int > > virq, > > unsigned int irq, const char *devname); > > int release_guest_irq(struct domain *d, unsigned int irq); > > > > +domid_t irq_get_domain_id(struct irq_desc *desc); > > + > > void arch_move_irqs(struct vcpu *v); > > > > #define arch_evtchn_bind_pirq(d, pirq) ((void)((d) + (pirq))) > > -- > > 2.9.2 > > > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@xxxxxxxxxxxxx > > https://lists.xen.org/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |