In the case of domUs, evtchn_irq is allocated by arch_domain_create and
set to GUEST_EVTCHN_PPI.
To make make_hypervisor_node more reusable, move the call to
evtchn_allocate out of make_hypervisor_node, to the dom0 specific caller
(handle_node).
Signed-off-by: Stefano Stabellini <stefanos@xilinx.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
if ( res )
return res;
- /*
- * It is safe to allocate the event channel here because all the
- * PPIs used by the hardware domain have been registered.
- */
- evtchn_allocate(d);
+ BUG_ON(d->arch.evtchn_irq == 0);
/*
* Interrupt event channel upcall:
int addrcells = dt_child_n_addr_cells(node);
int sizecells = dt_child_n_size_cells(node);
+ /*
+ * It is safe to allocate the event channel here because all the
+ * PPIs used by the hardware domain have been registered.
+ */
+ evtchn_allocate(d);
+
/*
* The hypervisor node should always be created after all nodes
* from the host DT have been parsed.