Message ID | 20220429205732.2030094-5-sstabellini@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | dom0less PV drivers | expand |
On 29.04.22 22:57, Stefano Stabellini wrote: > From: Luca Miccio <lucmiccio@gmail.com> > > When xs_introduce_domain is called, send out a notification on the > xenstore event channel so that any (dom0less) domain waiting for the > xenstore interface to be ready can continue with the initialization. > Before sending the notification, clear XS_CONNECTION_STATE_RECONNECTING. > > The extra notification is harmless for domains that don't require it. > > Signed-off-by: Luca Miccio <lucmiccio@gmail.com> > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> > CC: Juergen Gross <jgross@suse.com> > CC: Julien Grall <julien@xen.org> > --- > I dropped the Reviewed-by tags due to the connect = 0 change. Julien > also suggested it would be a good idea to add a clarification statement > about the usage of XS_CONNECTION_STATE_RECONNECTING in the header files > but I wasn't sure what to write. Please advise and I am happy to include > a statement in the next version. > > Changes in v5: > - reset XS_CONNECTION_STATE_RECONNECTING before notifying the domU > > Changes in v2: > - drop the new late_init parameter > --- > tools/xenstore/xenstored_domain.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c > index ae065fcbee..7bb8c64d33 100644 > --- a/tools/xenstore/xenstored_domain.c > +++ b/tools/xenstore/xenstored_domain.c > @@ -493,6 +493,10 @@ static struct domain *introduce_domain(const void *ctx, > /* Now domain belongs to its connection. */ > talloc_steal(domain->conn, domain); > > + /* Notify the domain that xenstore is available */ > + interface->connection = 0x0; Please use XENSTORE_CONNECTED instead of 0x0. > + xenevtchn_notify(xce_handle, domain->port); > + > if (!is_master_domain && !restore) > fire_watches(NULL, ctx, "@introduceDomain", NULL, > false, NULL); Juergen
diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c index ae065fcbee..7bb8c64d33 100644 --- a/tools/xenstore/xenstored_domain.c +++ b/tools/xenstore/xenstored_domain.c @@ -493,6 +493,10 @@ static struct domain *introduce_domain(const void *ctx, /* Now domain belongs to its connection. */ talloc_steal(domain->conn, domain); + /* Notify the domain that xenstore is available */ + interface->connection = 0x0; + xenevtchn_notify(xce_handle, domain->port); + if (!is_master_domain && !restore) fire_watches(NULL, ctx, "@introduceDomain", NULL, false, NULL);