[CONSOLED] Shouldn't call domain_create_ring() for a domU which is shutting down.

There is a race condition between domain_create_ring() and the removal
of the domU entry from xenstore. If the removal of the domU entry from xenstore
comes later than the first xs_gather() call in domain_create_ring(), it will go
on and bind the evtchn port to the dying domU, which will cause below error
message: (XEN) (file=event_channel.c, line=144) EVTCHNOP failure: domain 0, error -22, line 144

Signed-off-by: Max Zhen <max.zhen@sun.com>
This commit is contained in:
kaf24@firebug.cl.cam.ac.uk committed 2006-09-13 14:01:23 +01:00
1 parent 9f019b36fd
commit 80f2588d2b
1 file changed
+6 -4
+6 -4
View File
@@ -293,12 +293,14 @@ static bool watch_domain(struct domain *dom, bool watch)
bool success;
sprintf(domid_str, "dom%u", dom->domid);
if (watch)
if (watch) {
success = xs_watch(xs, dom->conspath, domid_str);
else
if (success)
domain_create_ring(dom);
} else {
success = xs_unwatch(xs, dom->conspath, domid_str);
if (success)
domain_create_ring(dom);
}
return success;
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.