From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v3 4/5] xen: arm: map child MMIO and IRQs to dom0 for PCI bus DT nodes. Date: Fri, 8 May 2015 11:42:52 +0100 Message-ID: <1431081772.2660.429.camel@citrix.com> References: <1429532129.25195.422.camel@citrix.com> <1429532165-19069-4-git-send-email-ian.campbell@citrix.com> <5541055B.30608@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5541055B.30608@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Julien Grall Cc: vijay.kilari@gmail.com, stefano.stabellini@eu.citrix.com, julien.grall@linaro.org, tim@xen.org, xen-devel@lists.xen.org, Chen Baozi , Suravee Suthikulanit List-Id: xen-devel@lists.xenproject.org On Wed, 2015-04-29 at 17:22 +0100, Julien Grall wrote: > Hi Ian, > > On 20/04/15 13:16, Ian Campbell wrote: > > +static int map_interrupt_to_domain(const struct dt_device_node *dev, > > + const struct dt_raw_irq *dt_raw_irq, > > + void *data) > > +{ > > [..] > > > + res = route_irq_to_guest(d, dt_irq.irq, dt_irq.irq, dt_node_name(dev)); > > + if ( res < 0 ) > > + { > > + printk(XENLOG_ERR "Unable to map IRQ%"PRId32" to dom%d\n", > > + dt_irq.irq, d->domain_id); > > + return res; > > + } > > You forgot to give the IRQ permission to the domain. IOW I should call irq_permit_access, between irq_set_spi_type and route_irq_to_guest I think? Should I be calling vgic_reserve_virq here as well? Other similar looking code does. It seems that handle_device() calls vgic_reserve_virq twice with the same arguments (once conditionally, the other not). Is that a rebase-o? Seems to have happened in cb818a58f6f785bb41a35bc1d1e52c66ffbe1e8b. Ian.