Hello community,

here is the log from the commit of package xf86-input-evdev for 
openSUSE:Factory checked in at 2014-06-02 07:04:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-input-evdev (Old)
 and      /work/SRC/openSUSE:Factory/.xf86-input-evdev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xf86-input-evdev"

Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-input-evdev/xf86-input-evdev.changes        
2014-05-10 08:32:10.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xf86-input-evdev.new/xf86-input-evdev.changes   
2014-06-02 07:04:14.000000000 +0200
@@ -1,0 +2,6 @@
+Tue May 20 22:52:33 UTC 2014 - [email protected]
+
+- Update to version 2.9.0:
+  Use the server's device list for duplicate detection (FDO#78309)
+
+-------------------------------------------------------------------

Old:
----
  xf86-input-evdev-2.8.99.1.tar.bz2

New:
----
  xf86-input-evdev-2.9.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xf86-input-evdev.spec ++++++
--- /var/tmp/diff_new_pack.TpXhpR/_old  2014-06-02 07:04:14.000000000 +0200
+++ /var/tmp/diff_new_pack.TpXhpR/_new  2014-06-02 07:04:14.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           xf86-input-evdev
-Version:        2.8.99.1
+Version:        2.9.0
 Release:        0
 Summary:        Generic Linux input driver for the Xorg X server
 License:        MIT

++++++ xf86-input-evdev-2.8.99.1.tar.bz2 -> xf86-input-evdev-2.9.0.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/ChangeLog 
new/xf86-input-evdev-2.9.0/ChangeLog
--- old/xf86-input-evdev-2.8.99.1/ChangeLog     2014-04-29 02:22:16.000000000 
+0200
+++ new/xf86-input-evdev-2.9.0/ChangeLog        2014-05-20 07:42:19.000000000 
+0200
@@ -1,3 +1,34 @@
+commit 5d239ceb260cd554245e8f0dc3627990726ea9b9
+Author: Peter Hutterer <[email protected]>
+Date:   Thu May 15 08:41:06 2014 +1000
+
+    evdev 2.9.0
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+
+commit 13dea90bc8ef2a2e6f55fb5ff5f54afe41d22f95
+Author: Peter Hutterer <[email protected]>
+Date:   Tue May 6 09:20:05 2014 +1000
+
+    Use the server's device list for duplicate detection (#78309)
+    
+    EvdevAddDevice/EvdevRemoveDevice keep a reference to the device to detect
+    duplicate devices based on the dev_t.
+    
+    EvdevAddDevices was called during PreInit, EvdevRemoveDevice was called 
during
+    DEVICE_CLOSE. That makes it imbalanced if the device succeeds PreInit but 
the
+    server skips everything else because MAX_DEVICES is exceeded. So for all
+    devices after MAX_DEVICES, we'd add a reference but never remove it,
+    eventually reading/writing past evdev_devices.
+    
+    The server keeps the list of devices for us anyway, so remove the copy of 
all
+    the pointers and instead run through the device list the server gives us.
+    
+    X.Org Bug 78309 <http://bugs.freedesktop.org/show_bug.cgi?id=78309>
+    
+    Signed-off-by: Peter Hutterer <[email protected]>
+    Reviewed-by: Hans de Goede <[email protected]>
+
 commit b25d71616557b0f3fc5e1ca65ba9e62809d14139
 Author: Peter Hutterer <[email protected]>
 Date:   Tue Apr 29 10:20:42 2014 +1000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/configure 
new/xf86-input-evdev-2.9.0/configure
--- old/xf86-input-evdev-2.8.99.1/configure     2014-04-29 02:21:19.000000000 
+0200
+++ new/xf86-input-evdev-2.9.0/configure        2014-05-20 07:41:52.000000000 
+0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xf86-input-evdev 2.8.99.1.
+# Generated by GNU Autoconf 2.69 for xf86-input-evdev 2.9.0.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='xf86-input-evdev'
 PACKAGE_TARNAME='xf86-input-evdev'
-PACKAGE_VERSION='2.8.99.1'
-PACKAGE_STRING='xf86-input-evdev 2.8.99.1'
+PACKAGE_VERSION='2.9.0'
+PACKAGE_STRING='xf86-input-evdev 2.9.0'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
 PACKAGE_URL=''
 
@@ -1363,7 +1363,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xf86-input-evdev 2.8.99.1 to adapt to many kinds of 
systems.
+\`configure' configures xf86-input-evdev 2.9.0 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1434,7 +1434,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xf86-input-evdev 2.8.99.1:";;
+     short | recursive ) echo "Configuration of xf86-input-evdev 2.9.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1567,7 +1567,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xf86-input-evdev configure 2.8.99.1
+xf86-input-evdev configure 2.9.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1891,7 +1891,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xf86-input-evdev $as_me 2.8.99.1, which was
+It was created by xf86-input-evdev $as_me 2.9.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2759,7 +2759,7 @@
 
 # Define the identity of the package.
  PACKAGE='xf86-input-evdev'
- VERSION='2.8.99.1'
+ VERSION='2.9.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18640,7 +18640,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xf86-input-evdev $as_me 2.8.99.1, which was
+This file was extended by xf86-input-evdev $as_me 2.9.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -18706,7 +18706,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xf86-input-evdev config.status 2.8.99.1
+xf86-input-evdev config.status 2.9.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/configure.ac 
new/xf86-input-evdev-2.9.0/configure.ac
--- old/xf86-input-evdev-2.8.99.1/configure.ac  2014-04-29 02:20:50.000000000 
+0200
+++ new/xf86-input-evdev-2.9.0/configure.ac     2014-05-20 07:41:26.000000000 
+0200
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-input-evdev],
-        [2.8.99.1],
+        [2.9.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-input-evdev])
 AC_CONFIG_SRCDIR([Makefile.am])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xf86-input-evdev-2.8.99.1/src/evdev.c 
new/xf86-input-evdev-2.9.0/src/evdev.c
--- old/xf86-input-evdev-2.8.99.1/src/evdev.c   2014-04-29 02:21:13.000000000 
+0200
+++ new/xf86-input-evdev-2.9.0/src/evdev.c      2014-05-20 07:41:26.000000000 
+0200
@@ -68,11 +68,6 @@
 /* removed from server, purge when dropping support for server 1.10 */
 #define XI86_SEND_DRAG_EVENTS   0x08
 
-#ifndef MAXDEVICES
-#include <inputstr.h> /* for MAX_DEVICES */
-#define MAXDEVICES MAX_DEVICES
-#endif
-
 #define ArrayLength(a) (sizeof(a) / (sizeof((a)[0])))
 
 #define MIN_KEYCODE 8
@@ -146,11 +141,6 @@
 static Atom prop_virtual;
 static Atom prop_scroll_dist;
 
-/* All devices the evdev driver has allocated and knows about.
- * MAXDEVICES is safe as null-terminated array, as two devices (VCP and VCK)
- * cannot be used by evdev, leaving us with a space of 2 at the end. */
-static EvdevPtr evdev_devices[MAXDEVICES] = {NULL};
-
 static int EvdevSwitchMode(ClientPtr client, DeviceIntPtr device, int mode)
 {
     InputInfoPtr pInfo;
@@ -216,58 +206,23 @@
 EvdevIsDuplicate(InputInfoPtr pInfo)
 {
     EvdevPtr pEvdev = pInfo->private;
-    EvdevPtr* dev   = evdev_devices;
+    InputInfoPtr d;
 
-    if (pEvdev->min_maj)
+    nt_list_for_each_entry(d, xf86FirstLocalDevice(), next)
     {
-        while(*dev)
-        {
-            if ((*dev) != pEvdev &&
-                (*dev)->min_maj &&
-                (*dev)->min_maj == pEvdev->min_maj)
-                return TRUE;
-            dev++;
-        }
-    }
-    return FALSE;
-}
+        EvdevPtr e;
 
-/**
- * Add to internal device list.
- */
-static void
-EvdevAddDevice(InputInfoPtr pInfo)
-{
-    EvdevPtr pEvdev = pInfo->private;
-    EvdevPtr* dev = evdev_devices;
-
-    while(*dev)
-        dev++;
-
-    *dev = pEvdev;
-}
-
-/**
- * Remove from internal device list.
- */
-static void
-EvdevRemoveDevice(InputInfoPtr pInfo)
-{
-    EvdevPtr pEvdev = pInfo->private;
-    EvdevPtr *dev   = evdev_devices;
-    int count       = 0;
+        if (strcmp(d->drv->driverName, "evdev") != 0)
+            continue;
 
-    while(*dev)
-    {
-        count++;
-        if (*dev == pEvdev)
-        {
-            memmove(dev, dev + 1,
-                    sizeof(evdev_devices) - (count * sizeof(EvdevPtr)));
-            break;
-        }
-        dev++;
+        e = (EvdevPtr)d->private;
+        if (e != pEvdev &&
+            e->min_maj &&
+            e->min_maj == pEvdev->min_maj)
+            return TRUE;
     }
+
+    return FALSE;
 }
 
 static BOOL
@@ -2026,7 +1981,6 @@
        xf86IDrvMsg(pInfo, X_INFO, "Close\n");
         EvdevCloseDevice(pInfo);
         EvdevFreeMasks(pEvdev);
-        EvdevRemoveDevice(pInfo);
         pEvdev->min_maj = 0;
        break;
 
@@ -2659,8 +2613,6 @@
                                          pInfo->type_name);
     pInfo->type_name = pEvdev->type_name;
 
-    EvdevAddDevice(pInfo);
-
     if (pEvdev->flags & EVDEV_BUTTON_EVENTS)
     {
         EvdevMBEmuPreInit(pInfo);

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to