On 8/29/23 19:19, Volodymyr Babchuk wrote: > From: Stewart Hildebrand <stewart.hildebr...@amd.com> > > Move iomem_caps initialization earlier (before arch_domain_create()). > > Signed-off-by: Stewart Hildebrand <stewart.hildebr...@amd.com> > --- > This is sort of a follow-up to: > > baa6ea700386 ("vpci: add permission checks to map_range()") > > I don't believe we need a fixes tag since this depends on the vPCI p2m BAR > patches. > --- > xen/arch/arm/vpci.c | 6 ++++++ > xen/common/domain.c | 4 +++- > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/arm/vpci.c b/xen/arch/arm/vpci.c > index 01b50d435e..fb5361276f 100644 > --- a/xen/arch/arm/vpci.c > +++ b/xen/arch/arm/vpci.c > @@ -2,6 +2,7 @@ > /* > * xen/arch/arm/vpci.c > */ > +#include <xen/iocap.h> > #include <xen/sched.h> > #include <xen/vpci.h> > > @@ -119,8 +120,13 @@ int domain_vpci_init(struct domain *d) > return ret; > } > else > + { > register_mmio_handler(d, &vpci_mmio_handler, > GUEST_VPCI_ECAM_BASE, GUEST_VPCI_ECAM_SIZE, > NULL); > + iomem_permit_access(d, paddr_to_pfn(GUEST_VPCI_MEM_ADDR), > + paddr_to_pfn(PAGE_ALIGN(GUEST_VPCI_MEM_ADDR + > + GUEST_VPCI_MEM_SIZE - > 1)));
We should also permit access to GUEST_VPCI_PREFETCH_MEM_ADDR > + } > > return 0; > } > diff --git a/xen/common/domain.c b/xen/common/domain.c > index 9b04a20160..11a48ba7e4 100644 > --- a/xen/common/domain.c > +++ b/xen/common/domain.c > @@ -695,6 +695,9 @@ struct domain *domain_create(domid_t domid, > radix_tree_init(&d->pirq_tree); > } > > + if ( !is_idle_domain(d) ) > + d->iomem_caps = rangeset_new(d, "I/O Memory", > RANGESETF_prettyprint_hex); > + > if ( (err = arch_domain_create(d, config, flags)) != 0 ) > goto fail; > init_status |= INIT_arch; > @@ -704,7 +707,6 @@ struct domain *domain_create(domid_t domid, > watchdog_domain_init(d); > init_status |= INIT_watchdog; > > - d->iomem_caps = rangeset_new(d, "I/O Memory", > RANGESETF_prettyprint_hex); > d->irq_caps = rangeset_new(d, "Interrupts", 0); > if ( !d->iomem_caps || !d->irq_caps ) > goto fail; > -- > 2.41.0