Olaf Hering
2012-Jan-05 20:27 UTC
[PATCH] linux-2.6.18: check availibility of XS_RESET_WATCHES command
# HG changeset patch
# User Olaf Hering <olaf@aepfle.de>
# Date 1325795190 -3600
# Node ID 8d1991a7f8a37ec1fc9a660cb48cb40ef42e9ff3
# Parent 821a5b2a10c86f18fbce0907af0db6905b9d540a
linux-2.6.18: check availibility of XS_RESET_WATCHES command
Check platform-feature-xs_reset_watches before sending XS_RESET_WATCHES
command. Buggy xenstored implementations such as EC2 do not ignore unknown
commands properly and cause a guest hang.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
diff -r 821a5b2a10c8 -r 8d1991a7f8a3 drivers/xen/xenbus/xenbus_xs.c
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -630,7 +630,12 @@ static struct xenbus_watch *find_watch(c
static void xs_reset_watches(void)
{
#ifndef CONFIG_XEN
- int err;
+ int err, supported = 0;
+
+ err = xenbus_scanf(XBT_NIL, "control",
+ "platform-feature-xs_reset_watches", "%d",
&supported);
+ if (err != 1 || !supported)
+ return;
err = xs_error(xs_single(XBT_NIL, XS_RESET_WATCHES, "", NULL));
if (err && err != -EEXIST)