From mboxrd@z Thu Jan 1 00:00:00 1970 From: Magnus Carlsson Subject: [PATCH] Fix for missing response to XS_UNWATCH request. Date: Wed, 21 Mar 2007 15:31:40 -0700 Message-ID: <4601B24C.3060706@galois.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060307080705060104040407" 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 This is a multi-part message in MIME format. --------------060307080705060104040407 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit With this patch, Dom0 clients can do "unwatch" properly through the kernel's xenbus connection. Cheers, Magnus --------------060307080705060104040407 Content-Type: text/x-patch; name="xenbus_dev-response-fix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xenbus_dev-response-fix.patch" # HG changeset patch # User Magnus Carlsson # Date 1174512701 25200 # Node ID 001a9729e8f7a6c0da128a7f9586f9a304e17cab # Parent 3fd9b0c71b8c687b108a8bf671c9c4fc47046a0a Fix for missing response to XS_UNWATCH request. diff -r 3fd9b0c71b8c -r 001a9729e8f7 linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c --- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c Tue Mar 20 17:36:18 2007 +0000 +++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_dev.c Wed Mar 21 14:31:41 2007 -0700 @@ -246,9 +246,6 @@ static ssize_t xenbus_dev_write(struct f token++; if (msg_type == XS_WATCH) { - static const char * XS_WATCH_RESP = "OK"; - struct xsd_sockmsg hdr; - watch = kmalloc(sizeof(*watch), GFP_KERNEL); watch->watch.node = kmalloc(strlen(path)+1, GFP_KERNEL); @@ -266,11 +263,6 @@ static ssize_t xenbus_dev_write(struct f } list_add(&watch->list, &u->watches); - - hdr.type = XS_WATCH; - hdr.len = strlen(XS_WATCH_RESP) + 1; - queue_reply(u, (char *)&hdr, sizeof(hdr)); - queue_reply(u, (char *)XS_WATCH_RESP, hdr.len); } else { list_for_each_entry_safe(watch, tmp_watch, &u->watches, list) { @@ -284,6 +276,14 @@ static ssize_t xenbus_dev_write(struct f } } } + { + static const char * XS_RESP = "OK"; + struct xsd_sockmsg hdr; + hdr.type = msg_type; + hdr.len = strlen(XS_RESP) + 1; + queue_reply(u, (char *)&hdr, sizeof(hdr)); + queue_reply(u, (char *)XS_RESP, hdr.len); + } break; --------------060307080705060104040407 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------060307080705060104040407--