if (!v2m)
                return 0;
 
-       inner_domain = irq_domain_create_tree(v2m->fwnode,
-                                             &gicv2m_domain_ops, v2m);
+       inner_domain = irq_domain_create_hierarchy(parent, 0, 0, v2m->fwnode,
+                                                  &gicv2m_domain_ops, v2m);
        if (!inner_domain) {
                pr_err("Failed to create GICv2m domain\n");
                return -ENOMEM;
        }
 
        irq_domain_update_bus_token(inner_domain, DOMAIN_BUS_NEXUS);
-       inner_domain->parent = parent;
        pci_domain = pci_msi_create_irq_domain(v2m->fwnode,
                                               &gicv2m_msi_domain_info,
                                               inner_domain);