From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: [PATCH] linux-2.6.18: check availibility of XS_RESET_WATCHES command Date: Thu, 05 Jan 2012 21:27:07 +0100 Message-ID: <8d1991a7f8a37ec1fc9a.1325795227@probook.site> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org # HG changeset patch # User Olaf Hering # 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 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)