Don't delete the device on ENODEV to avoid free in signal handler
This commit is contained in:
parent
81585ea56c
commit
8e470dd9f1
38
0001-Don-t-delete-the-device-on-ENODEV.patch
Normal file
38
0001-Don-t-delete-the-device-on-ENODEV.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 1660f32f21ba1fa70fa79af1cb59436065a6ba8a Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 31 Jul 2012 16:39:00 +1000
|
||||
Subject: [PATCH evdev] Don't delete the device on ENODEV
|
||||
|
||||
This is signal handler code and we cannot clean up properly while in the
|
||||
signal handler. So reduce the code to removing the signal handler and let
|
||||
the device be cleaned up later.
|
||||
|
||||
If hotplugging is on, the server will remove it when the config backend says
|
||||
so and if it is off, the server will remove it on shutdown.
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
src/evdev.c | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/evdev.c b/src/evdev.c
|
||||
index f54b66f..b832d98 100644
|
||||
--- a/src/evdev.c
|
||||
+++ b/src/evdev.c
|
||||
@@ -1113,12 +1113,8 @@ EvdevReadInput(InputInfoPtr pInfo)
|
||||
if (len <= 0)
|
||||
{
|
||||
if (errno == ENODEV) /* May happen after resume */
|
||||
- {
|
||||
- EvdevMBEmuFinalize(pInfo);
|
||||
- Evdev3BEmuFinalize(pInfo);
|
||||
xf86RemoveEnabledDevice(pInfo);
|
||||
- EvdevCloseDevice(pInfo);
|
||||
- } else if (errno != EAGAIN)
|
||||
+ else if (errno != EAGAIN)
|
||||
{
|
||||
/* We use X_NONE here because it doesn't alloc */
|
||||
xf86MsgVerb(X_NONE, 0, "%s: Read error: %s\n", pInfo->name,
|
||||
--
|
||||
1.7.10.4
|
||||
|
@ -8,7 +8,7 @@
|
||||
Summary: Xorg X11 evdev input driver
|
||||
Name: xorg-x11-drv-evdev
|
||||
Version: 2.7.2
|
||||
Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{dist}
|
||||
Release: 3%{?gitdate:.%{gitdate}git%{gitversion}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X Hardware Support
|
||||
@ -23,6 +23,8 @@ Source0: ftp://ftp.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2
|
||||
|
||||
# Bug 805902 - Scrollwheels on tablets are broken
|
||||
Patch02: 0001-Allow-relative-scroll-valuators-on-absolute-devices.patch
|
||||
# Only disable device on ENODEV to avoid free in sighandler
|
||||
Patch03: 0001-Don-t-delete-the-device-on-ENODEV.patch
|
||||
|
||||
ExcludeArch: s390 s390x %{?rhel:ppc ppc64}
|
||||
|
||||
@ -42,6 +44,7 @@ X.Org X11 evdev input driver.
|
||||
%prep
|
||||
%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}}
|
||||
%patch02 -p1 -b .relscroll
|
||||
%patch03 -p1 -b .enodev
|
||||
|
||||
%build
|
||||
autoreconf -v --install || exit 1
|
||||
@ -83,6 +86,9 @@ X.Org X11 evdev input driver development files.
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Aug 04 2012 Peter Hutterer <peter.hutterer@redhat.com> 2.7.2-3
|
||||
- Don't delete the device on ENODEV to avoid free in signal handler
|
||||
|
||||
* Sat Aug 04 2012 Peter Hutterer <peter.hutterer@redhat.com> 2.7.2-2
|
||||
- Add missing changelog message.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user