From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH] [PV Xen] Mouse stuck after save/restore of guest. Date: Thu, 14 Apr 2011 11:59:15 -0400 Message-ID: <20110414155915.GA23629@dumpdata.com> References: <1302795907-321-1-git-send-email-imammedo@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1302795907-321-1-git-send-email-imammedo@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Igor Mammedov , olaf@aepfle.de Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Thu, Apr 14, 2011 at 05:45:07PM +0200, Igor Mammedov wrote: > Mouse stuck after restore of PV guest but buttons are > in working condition. > If driver has been configured for ABS coordinates at > start it will get XENKBD_TYPE_POS events and then > suddenly after restore it'll start getting > XENKBD_TYPE_MOTION events, that will be dropped later > and they won't get into user-space. > > Regression was introduced by hunk 5 and 6 of 5ea5254 > in upstream. > > Driver on restore should ask xen for request-abs-pointer > again if it's available. So restore parts that did it > before 5ea5254. Olaf? > --- > drivers/input/xen-kbdfront.c | 14 +++++++++++++- > 1 files changed, 13 insertions(+), 1 deletions(-) > > diff --git a/drivers/input/xen-kbdfront.c b/drivers/input/xen-kbdfront.c > index 53e6273..71e2fc5 100644 > --- a/drivers/input/xen-kbdfront.c > +++ b/drivers/input/xen-kbdfront.c > @@ -286,7 +286,7 @@ static void xenkbd_backend_changed(struct xenbus_device *dev, > enum xenbus_state backend_state) > { > struct xenkbd_info *info = dev_get_drvdata(&dev->dev); > - int val; > + int ret, val; > > switch (backend_state) { > case XenbusStateInitialising: > @@ -299,6 +299,18 @@ static void xenkbd_backend_changed(struct xenbus_device *dev, > > case XenbusStateInitWait: > InitWait: > + ret = xenbus_scanf(XBT_NIL, info->xbdev->otherend, > + "feature-abs-pointer", "%d", &val); > + if (ret < 0) > + val = 0; > + if (val) { > + ret = xenbus_printf(XBT_NIL, info->xbdev->nodename, > + "request-abs-pointer", "1"); > + if (ret) > + printk(KERN_WARNING > + "xenkbd: can't request abs-pointer"); Any reason for not using the pr_warning as it was before? > + } > + > xenbus_switch_state(dev, XenbusStateConnected); > break; > > -- > 1.7.1 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel