6950572 X mouse driver crashes Xorg during unplug-plug the usb mouse device
authorAlan Coopersmith <Alan.Coopersmith@Oracle.COM>
Mon, 16 Aug 2010 15:18:35 -0700
changeset 998 7fa6bc0aa427
parent 997 6b098463835a
child 999 c88b52baf4f4
6950572 X mouse driver crashes Xorg during unplug-plug the usb mouse device
open-src/driver/xf86-input-mouse/6950572.patch
open-src/driver/xf86-input-mouse/Makefile
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/driver/xf86-input-mouse/6950572.patch	Mon Aug 16 15:18:35 2010 -0700
@@ -0,0 +1,68 @@
+From cb11e9ca60e8ca2590c77f844bfd19e5278f518f Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <[email protected]>
+Date: Wed, 11 Aug 2010 21:30:40 -0700
+Subject: [PATCH:xf86-input-mouse] MouseCtrl doesn't need to save values we never use
+
+Makes it into a no-op, like evdev's PtrCtrl function, now that
+mouse acceleration is completely handled in dix.
+
+Signed-off-by: Alan Coopersmith <[email protected]>
+Reviewed-by: Peter Hutterer <[email protected]>
+Reviewed-by: Patrick E. Kane <pekane52 at gmail.com>
+Reviewed-by: Simon Thum <[email protected]>
+---
+ src/mouse.c       |   18 +++---------------
+ src/xf86OSmouse.h |    3 ---
+ 2 files changed, 3 insertions(+), 18 deletions(-)
+
+diff --git a/src/mouse.c b/src/mouse.c
+index 99d1f2b..a296021 100644
+--- a/src/mouse.c
++++ b/src/mouse.c
+@@ -1546,26 +1546,14 @@ post_event:
+ 
+ /*
+  * MouseCtrl --
+- *      Alter the control parameters for the mouse. Note that all special
+- *      protocol values are handled by dix.
++ *      Alter the control parameters for the mouse. Note that all
++ *      settings are now handled by dix.
+  */
+ 
+ static void
+ MouseCtrl(DeviceIntPtr device, PtrCtrl *ctrl)
+ {
+-    InputInfoPtr pInfo;
+-    MouseDevPtr pMse;
+-
+-    pInfo = device->public.devicePrivate;
+-    pMse = pInfo->private;
+-
+-#ifdef EXTMOUSEDEBUG
+-    ErrorF("MouseCtrl pMse=%p\n", pMse);
+-#endif
+-    
+-    pMse->num       = ctrl->num;
+-    pMse->den       = ctrl->den;
+-    pMse->threshold = ctrl->threshold;
++    /* This function intentionally left blank */
+ }
+ 
+ /*
+diff --git a/src/xf86OSmouse.h b/src/xf86OSmouse.h
+index 09b8525..33b2232 100644
+--- a/src/xf86OSmouse.h
++++ b/src/xf86OSmouse.h
+@@ -214,9 +214,6 @@ typedef struct _MouseDevRec {
+     int			oldBaudRate;
+     int			sampleRate;
+     int			lastButtons;
+-    int			threshold;	/* acceleration */
+-    int			num;
+-    int			den;
+     int			buttons;	/* # of buttons */
+     int			emulateState;	/* automata state for 2 button mode */
+     Bool		emulate3Buttons;
+-- 
+1.5.6.5
+
--- a/open-src/driver/xf86-input-mouse/Makefile	Fri Aug 13 16:39:48 2010 -0700
+++ b/open-src/driver/xf86-input-mouse/Makefile	Mon Aug 16 15:18:35 2010 -0700
@@ -39,7 +39,8 @@
 SOURCE_PATCHES = \
 	enodev.patch \
 	6892799.patch \
-	6920647.patch
+	6920647.patch \
+	6950572.patch,-p1
 
 # Man pages to apply Sun footer to & attributes to list
 SUNTOUCHED_MANPAGES=man/*.man
@@ -53,6 +54,12 @@
 
 include ../Makefile.inc
 
-install_docs: $(INSTALL_DEPS)
+install_docs: $(PROTODIR)$(X11_DOC_DIR)/README.mouse
+
+$(SOURCE_DIR)/README: $(INSTALL_DEPS)
+
+$(PROTODIR)$(X11_DOC_DIR):
 	mkdir -p $(PROTODIR)$(X11_DOC_DIR)
-	cp -p $(SOURCE_DIR)/README $(PROTODIR)$(X11_DOC_DIR)/README.mouse
+
+$(PROTODIR)$(X11_DOC_DIR)/README.mouse: $(PROTODIR)$(X11_DOC_DIR) $(SOURCE_DIR)/README
+	$(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/README $@