On 16.07.25 23:14, Jason Andryuk wrote:
Make introduce_domain() use an event channel from the the xenstore page. It is only used if non-zero. Otherwise the passed in event channel port is used.The is useful for a xenstored stubdom to configure domains autonomously. Signed-off-by: Jason Andryuk <jason.andr...@amd.com> --- tools/xenstored/domain.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c index e1d5e8d614..94b2a1eaa7 100644 --- a/tools/xenstored/domain.c +++ b/tools/xenstored/domain.c @@ -1021,9 +1021,15 @@ static struct domain *introduce_domain(const void *ctx, return NULL;if (!domain->introduced) {+ evtchn_port_t iface_port; interface = map_interface(domid); if (!interface && !restore) return NULL; + + iface_port = interface->evtchn_port; + if (iface_port) + port = iface_port; +
Any reason you introduced iface_port? I think you could just use: + if (interface->evtchn_port) + port = interface->evtchn_port; In case the guest is modifying the field in parallel, it would only shoot itself in the foot. So there is no real risk in a possible double read. Juergen
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature