[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 4/5] xen: arm: map child MMIO and IRQs to dom0 for PCI bus DT nodes.
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. Also I'm wondering if we should care about passthrough the PCI controller to a guest. If so, you would need to check need_mapping as we do in handle_device. If not, I would add a warning if the property "xen,passthrough" exists in the node telling that we won't honor it. > + DPRINT(" - IRQ: %u\n", dt_irq.irq); > + > + return 0; > +} > + > +static int map_range_to_domain(const struct dt_device_node *dev, > + u64 addr, u64 len, > + void *data) > +{ > + struct domain *d = data; > + int res; > + > + res = map_mmio_regions(d, > + paddr_to_pfn(addr & PAGE_MASK), > + DIV_ROUND_UP(len, PAGE_SIZE), > + paddr_to_pfn(addr & PAGE_MASK)); > + if ( res < 0 ) > + { > + printk(XENLOG_ERR "Unable to map 0x%"PRIx64 > + " - 0x%"PRIx64" in domain %d\n", > + addr & PAGE_MASK, PAGE_ALIGN(addr + len) - 1, > + d->domain_id); > + return res; > + } > + > + DPRINT(" - MMIO: %010"PRIx64" - %010"PRIx64"\n", addr, addr+len); NIT: mising space "addr + len" And same question as for the interrupt. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |