summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2011-06-23 14:19:28 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2011-06-23 14:19:36 -0400
commit8d526ff69102f467233f30b04beca1b8e1815ba9 (patch)
treeb5b9033a5da761b68947253d95b60a3324f66078
parent8ae87118fd1257d81b0188ae344f362251f160c0 (diff)
downloadlongterm-queue-2.6.34-8d526ff69102f467233f30b04beca1b8e1815ba9.tar.gz
xen input, avoid regression of stuck mouse
Thanks to Olaf Hering for pointing this out. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/Input-xen-kbdfront-fix-mouse-getting-stuck-after-sav.patch68
-rw-r--r--queue/series2
2 files changed, 70 insertions, 0 deletions
diff --git a/queue/Input-xen-kbdfront-fix-mouse-getting-stuck-after-sav.patch b/queue/Input-xen-kbdfront-fix-mouse-getting-stuck-after-sav.patch
new file mode 100644
index 0000000..fbc6b35
--- /dev/null
+++ b/queue/Input-xen-kbdfront-fix-mouse-getting-stuck-after-sav.patch
@@ -0,0 +1,68 @@
+From b3f88ff1d10b617b6fbeef28c1c69f8a9b0a3856 Mon Sep 17 00:00:00 2001
+From: Igor Mammedov <imammedo@redhat.com>
+Date: Mon, 18 Apr 2011 10:17:17 -0700
+Subject: [PATCH] Input: xen-kbdfront - fix mouse getting stuck after
+ save/restore
+
+commit c36b58e8a9112017c2bcc322cc98e71241814303 upstream.
+
+Mouse gets "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
+5ea5254aa0ad269cfbd2875c973ef25ab5b5e9db
+("Input: xen-kbdfront - advertise either absolute or relative
+coordinates").
+
+Driver on restore should ask xen for request-abs-pointer again if it is
+available. So restore parts that did it before 5ea5254.
+
+Acked-by: Olaf Hering <olaf@aepfle.de>
+Signed-off-by: Igor Mammedov <imammedo@redhat.com>
+[v1: Expanded the commit description]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+---
+ drivers/input/xen-kbdfront.c | 13 ++++++++++++-
+ 1 files changed, 12 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/input/xen-kbdfront.c b/drivers/input/xen-kbdfront.c
+index 6ad8be1..a94ac75 100644
+--- a/drivers/input/xen-kbdfront.c
++++ b/drivers/input/xen-kbdfront.c
+@@ -285,7 +285,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:
+@@ -296,6 +296,17 @@ 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)
++ pr_warning("xenkbd: can't request abs-pointer");
++ }
++
+ xenbus_switch_state(dev, XenbusStateConnected);
+ break;
+
+--
+1.7.4.4
+
diff --git a/queue/series b/queue/series
index 8735b7f..1fedc55 100644
--- a/queue/series
+++ b/queue/series
@@ -220,6 +220,8 @@ hwmon-sht15-Fix-integer-overflow-in-humidity-calcula.patch
# Content taken from v2.6.32.36
SUNRPC-Never-reuse-the-socket-port-after-an-xs_close.patch
Input-xen-kbdfront-advertise-either-absolute-or-rela.patch
+# fix regression caused by the above
+Input-xen-kbdfront-fix-mouse-getting-stuck-after-sav.patch
USB-cdc-acm-fix-potential-null-pointer-dereference-o.patch
USB-cdc-acm-fix-potential-null-pointer-dereference.patch
USB-cdc-acm-fix-memory-corruption-panic.patch