diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-06-23 14:19:28 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2011-06-23 14:19:36 -0400 |
commit | 8d526ff69102f467233f30b04beca1b8e1815ba9 (patch) | |
tree | b5b9033a5da761b68947253d95b60a3324f66078 | |
parent | 8ae87118fd1257d81b0188ae344f362251f160c0 (diff) | |
download | longterm-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.patch | 68 | ||||
-rw-r--r-- | queue/series | 2 |
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 |