[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [CONSOLED] Shouldn't call domain_create_ring() for a domU which is shutting down.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 98fcd017c5f357d25e1fe648784eb3d42d0c115d # Parent b7f763a8a7efe3271e142831dc86f0550bce07ba [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@xxxxxxx> --- tools/console/daemon/io.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff -r b7f763a8a7ef -r 98fcd017c5f3 tools/console/daemon/io.c --- a/tools/console/daemon/io.c Wed Sep 13 13:54:59 2006 +0100 +++ b/tools/console/daemon/io.c Wed Sep 13 14:01:23 2006 +0100 @@ -293,12 +293,14 @@ static bool watch_domain(struct domain * 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; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |